• Garantipay 2.0

Garanti Pay Nedir?

• GarantiPay internet alışverişlerinde müşterinin kart bilgilerini firmayla paylaşmadığı, BonusFlaş uygulaması içinde yer alan hızlı ve kolay bir ödeme yöntemidir.

• İnternet alışverişi sırasında, ödeme seçenekleri adımında bir check out alternatifi olarak yer alır.

• GarantiPay seçeneğini check out sayfasında görünür yerlerde konumlandırmak GarantiPay sadık kullanıcılarının firmada kolayca işlem yapabilmesini sağlar.

• Hem e-commerce(in-web) işlemlerde, hem de m-commerce(in-app) işlemlerde müşteriler bu deneyimi yaşayabilir.

• GarantiPay check out seçildiğinde, müşteri BonusFlaş’a yönlendirilir, işlemini BonusFlaş içinden sonlandırır.

• Müşteri GarantiPay içinden ödemesini tamamlarken Garanti veya diğer banka kartlarını kullanabilir. Aynı zamanda Alışveriş Kredisi ile de ödemesini gerçekleştirebilir. Alışveriş kredisi firmada banka kartı işlemi olarak görünür. Bu sayede müşterinin tüm ödeme ihtiyaçlarına tek yerden çözüm sunar.

Garanti Pay‘in Müşterilerimiz ve Üye İşyerlerimize Faydaları:

• Müşterilerimize kolay, hızlı ve güvenli bir ödeme deneyimi sağlar.

• Müşterilerimizin işlem esnasında cüzdanlarını ve kartlarını yanlarında bulundurma ihtiyacını ortadan kaldırır.

• Ödeme işlemi sırasında kart bilgilerinin üye işyerleri ile paylaşılması ihtiyacı ortadan kaldırır.

• OneClickPayment yapısını kullanmak isteyen ama kart bilgilerini saklamak istemeyen üye işyerlerimiz için bu yapıyı hem mobil uygulamalarından hem de web sitelerinden yapılacak ödemeler için sağlar.

• Mobil Uygulama üzerinden de ürün ve servislerini sağlayan üye işyerlerimize de ödeme çözümü sağlar. Mobil Uygulama üzerinden kredi kartı bilgisinin manuel girişi ile ödemenin yapıldığı yapıya göre işlem sürelerini %70 oranında kısaltarak kullanıcı deneyimine olumlu katkı sağlar.

Örnek Firma Rakamları:

  • Alışveriş sıklığını %47 artırır.
  • Müşteri başına %56 daha fazla ciro
  • Kullanan müşterilerin %88'i tekrar kullanır
  • Görünür olduğu firmalarda %30 ciro payı yakalar

Test, Entegrasyon ve Üretim Ortamı URL Bilgileri

Test Entegrasyon Üretim
https://garantipay- test.garantibbva.com.tr https://garantipay- integration.garantibbva.com.tr https://garantipay.garantibbva. com.tr

IP Tanımları

TEST ve PROD ortamda işlem gönderebilmek, test BonusFlaş uygulamasını indirebilmek için IP tanımlamanız tarafımızca yapılmalı, size işlem cevaplarını dönebilmemiz için firewall kullanıyorsanız bankamız aşağıdaki IP’lerine izin vermeniz gereklidir.

İzin vermeniz gereken bankamız IP bilgileri:

217.68.208.0/20 ; 194.29.208.0/21 ; 91.188.192.0/22 ve 193.218.113.0/24

Tarafımıza iletmeniz gereken IP bilgileri aşağıdadır.

TEST ortamında işlem yapabilmeniz için sabit sunucu IP bilginiz: ………………………………………………………

TEST BonusFlaş uygulamasını indirebilmeniz için sabit IP bilginiz: ………………………………………………………

(Bu alanda cep telefonunuzun bağlı olduğu sabit wifi IP adresi iletilmelidir.)

PROD ortamda işlem yapabilmeniz için sabit sunucu IP

bilginiz: …………………………………………………………

Test BonusFlaş ortamı için IP kayıtlarınız yapıldıktan sonra aşağıdaki bilgiler ile test BonusFlaş uygulamasını indirebilir ve BonusFlaş üzerinden ödeme işlemlerinizi tamamlayabilirsiniz.

Müşteri No TCKN Parola
33838408 10033838408 147852

Uygulama Test Linkleri:

Android ve IOS:
https://bonusgw-tst.garanti.com.tr/bonusapp/downloadBonusApp.json

İş yeri web sitesinden veya akıllı telefon uygulaması üzerinden ödeme başlatılmasına göre iki farklı GarantiPay akışı mevcuttur. Bu akışlara Web2App ve App2App denilmektedir.

App2App Akışı

GarantiPay işleminin iş yeri akıllı telefonu üzerinden başlatıldığı akıştır. App2App akışında, müşteri iş yeri akıllı telefon uygulamasından ödeme seçenekleri adımında Garanti Pay ile Öde seçeneğini seçerek ilerletir. Akış ve mesajların detayları aşağıda ilgili bölümdedir. Akış diyagramı:

Web2App Akışı

GarantiPay işleminin iş yeri web sitesi üzerinden başlatıldığı akıştır. Web2App akışında, müşteri iş yeri web sayfasında ödeme seçenekleri adımında GarantiPay ile Öde seçeneğini seçerek ilerletir. Akış ve mesajların detayları aşağıda ilgili bölümdedir. Akış diyagramı:

Mesaj Signature

Ecommerce API Platform mesajların doğruluğunu kontrol etmek için JWS (Json Web Signature) standardını kullanır. JWS, JSON veri yapılarının dijital imzalar veya Hash tabanlı Mesaj Kimlik Doğrulama Kodları (HMAC'ler) ile içerikte değişiklik olup olmadığının kontrolünü sağlar. JWS de kullanılmak için gereken şifreleme bilgileri JWK (Json Web Key) formatında sanalpos admin ekranları üzerinden herbir terminal için ayrı olarak alınır. JWK, bir şifreleme anahtarını temsil eden bir JSON yapısıdır. JWK dosyasının içinde kullanılan anahtarın özellikleri ve bilgisi vardır. Ecommerce API Platformda bir JWK dosyası sadece bir terminal ile ilişkilidir. Yeni bir JWK dosyası üretilmesi durumunda eski JWK dosyası 48 saat daha geçerlidir. Bu süre içinde iş yerinin mevcut JWK dosyalarını güncellemesi gerekir. 48 saat sonra sisteme eski JWK bilgileri ile gelen istekler Ecommerce API platform tarafından kabul edilmez.

JWS ile mesajı imzalamak için sanalpos admin ekranlarından alınan JWK dosyası bir dizin, veri tabanı veya bir kasa programından okunmalıdır. Kasa programı kullanan iş yerlerinin mutlaka JWK dosyalarını bu kasalarda tutması önerilir. JWK dosyasının okunması için bir çok programlama dilini destekleyen nimbus-jose kütüphanesi kullanılabilir. İlk olarak JWK dosya okunarak JWK objesi oluşturulur. Bu JWK objesi ile de JWS header ı oluşturulur. JWS header oluşturulurken JWK key id si mutlaka JWS header bilgisine eklenmelidir. Oluşan JWS header ve mesaj payload birlikte JWSObject oluşur ve bilgiler imzalanır. JWSObject imzalandıktan sonra gönderilecek isteğin http body sine direkt yazılır ve ilgili Ecommerce API Platform adresine gönderilir.

// Load JWK Json From File, DB or Vault. Vault is recommended.\n\n//JWK key file is explicitly built into the code to show its contents. You should not use this approach.\nfinal String jwkJson = \"{\\\"kty\\\":\\\"oct\\\",\\\"use\\\":\\\"sig\\\",\\\"kid\\\":\\\"7b76e130-73de-4562-9c20-ad5e983e22d8\\\",\\\"k\\\":\\\"8ut0KLzijwH9m-0L4EUGerwavnYhSUmsn4B5-VNpqig\\\",\\\"alg\\\":\\\"HS256\\\"}\";\n// Payload Json\nfinal String payload = \"{\\\"meta\\\": {\\\"id\\\":\\\"acde070d-8c4c-4f0d-9d8a-162843c10333\\\", \\\"timestamp\\\": 1685645139}, \\\"data\\\": {\\\"orderId\\\": \\\"467645734901236734\\\", \\\"binNumbers\\\":[\\\"34055607\\\"], \\\"price\\\": {\\\"amount\\\": \\\"10000\\\",\\\"currency\\\": 949}}\";\n// Parse JWK\nfinal JWK jwk = JWK.parse(jwkJson);\n// Create JWS Object\nfinal JWSObject jws = new JWSObject(\n new JWSHeader.Builder(JWSAlgorithm.HS256).keyID(jwk.getKeyID()).build(),\n new Payload(payload));\n// Sign JWS\njws.sign(new MACSigner(jwk.toOctetSequenceKey()));\n// Final JWS String\nfinal String httpBody = jws.serialize();

We would love to hear from you. Do you have problems/questions about services ? Send us detailed email about it ?

Send Us a Question Send Us a Question