• Kart Saklama

Kart Saklama Genel Kavram

Üye iş yerleri token alma servislerini kullanarak, ödeme oluşturmadan işlem içerisinde gönderdikleri müşteri kart bilgilerinin Garanti Bankası sunucularında güvenli bir şekilde şifrelenmesini sağlayarak unique bir token elde ederler. Servis çağrımı esnasında token alma işlemi yapılan kart için validasyon kontrolleri yapılır. Eğer kart provizyon almaya uygun bir kart ise işlem sonucunda üretilen token bilgisi cevap mesajında üye işyerine dönülür. 

Garanti bankası kartları dışındaki diğer banka kartları ile gönderilen token alma işlemlerinde kart validasyonu için her token alma işleminde sistem tarafından 0,11 TL tutarında bir satış işlemi yapılır. Eğer satış işlemi başarılı olur ise kart için bir token değeri üretilir ve 0,11 TL tutarındaki satış işlemi otomatik olarak iptal edilir. Bu işlem kart hamilinin e kstresinde görüntülenmez.

Üye iş yerleri servis cevabında dönen token bilgisini müşteri verileri ile ilişkilendirmek ( örneğin kayıt numarası, müşteri numarası vs.) sureti ile daha sonra ödeme işlemlerinde kullanmak için saklamalıdır.

Garanti Bankası sunucularında işlem içerisinde gönderilen kart bilgileri ya da müşteri bilgileri yerine üretilen token bilgisi üye iş yeri ile ilişkili bir biçimde saklanır. Tokenların yönetimi ve kullanımı üye iş yerine aittir.

Test Ortamı

Kart Saklama ve Switch servislerini test etmek için kullanılacak TEST BASE URL aşağıdaki gibidir:

TEST BASE URL: https://gbtaksimtunel-integration.garanti.com.tr/

Not: Bu TEST BASE URL, Garanti Bankası tarafından sunulan sanal ortamı temsil eder ve gerçek işlemler yerine test amaçlı kullanılması için oluşturulmuştur. Bu ortamda yapılan işlemler, canlı ortamdaki gibi gerçek finansal etkiler doğurmaz ve sadece test senaryoları üzerinden işlemektedir.

Test ortamı, farklı senaryoları ve hata durumlarını simüle ederek uygulamanın performansını ve güvenilirliğini test etmeyi sağlar. Ayrıca, API isteklerinin ve cevaplarının doğru şekilde işlendiğini doğrulamak için kullanılabilir.

Testler sırasında olası hata durumlarına karşı nasıl tepki verileceği, hataların nasıl ele alınacağı ve sistemin doğru şekilde çalıştığından emin olunmalıdır. Testler, güvenlik ve uyumluluk açısından da önem taşır ve canlı ortama geçiş öncesinde başarılı bir test aşaması gerçekleştirilmelidir.

Test ortamındaki hataların geçici olabileceği unutulmamalıdır. Geliştirme ekibi, olası hataların sıklıkla tekrarlanması durumunda ETicaretDestek@garantibbva.com.tr destek birimleriyle iletişime geçmeyi tercih etmelidir. Bu şekilde, sorunlar daha hızlı ve etkili bir şekilde çözülerek test sürecinin verimli bir şekilde ilerlemesi sağlanacaktır. Başarılı testler, uygulamanın ve sistemlerin güvenli ve sorunsuz bir şekilde canlı ortama geçişine büyük katkı sağlar.

Test ortamında API isteklerinde gönderilmesi için aşağıdaki bilgiler kullanılabilir. Bu değerler, tüm istek tiplerinde kullanılacaktır:

Başlık Değer
Switch ID: CC82C381E078482AB328943FCCB7100C
Switch Şifresi: 123asdASD@

Bu bilgiler, Kart Saklama ve Switch API'larını test etmek için kullanılacak olan kimlik doğrulama bilgileridir. Testlerin başarıyla gerçekleştirilmesi ve doğru sonuçlar alınabilmesi için bu bilgilerin doğru bir şekilde kullanılmasına özen gösterilmelidir. API isteklerinin bu kimlik bilgileriyle yapıldığından emin olmak, testlerin güvenilirliği ve başarısı için önemlidir.

Üretim Ortamı (Üye İş Yeri Credential’larının Alınması)

Üye iş yerinin üretim ortamında gerçek verilerle istek göndermek için, test ortamında entegrasyon tamamlandıktan sonra üye iş yerinin Garanti Sanalpos terminal numarasını ETicaretDestek@garantibbva.com.tr adresine ileterek Switch ID değerini elde etmesi gerekmektedir.

Elde edilen Switch ID değerine istinaden API isteklerinde güvenlik amaçlı oluşturulan hash verisinin hesaplanması gerekmektedir. Bu hash verisi hesabında üye iş yerinin Switch Şifresi de yer almalıdır. Hash hesabıyla ilgili detaylar ilerleyen kısımlarda açıklanacaktır.

Üye iş yerinin Switch Şifresi, üye iş yerinin yönetim ekranlarında bulunan Parola Güncelleme menüsü altından oluşturulmalıdır. Bu işlem, üye iş yeri admin kullanıcısı tarafından gerçekleştirilir.

Switch Şifresi oluşturulması hakkında detaylı bilgiye "Parola Güncelleme" başlığı altından ulaşılabilir. Bu şekilde, üye iş yerleri güvenli bir şekilde gerçek verilerle API isteklerini gerçekleştirebilir ve GarantiBBVA Switch entegrasyonunu başarıyla tamamlayabilirler.

API İstek ve Cevapları Header Bilgisi

Kart saklama ve Switch sistemine atılacak bütün JSON API isteklerinde Request Header alanının eksiksiz olarak gönderilmesi gerekmektedir. Bu alanlar ile ilgili işlemin içerisinde yer alan alanların kontrolü yapılır ve gönderilen datanın valid olup olmadığı kontrol edilir. Bahsi geçen isteklerin hepsinin JSON API response bilgisinde response header alanı dönülecektir. Atılan bütün JSON API isteklerinin Content-Type bilgisi application/json tipinde olmalıdır. Yine atılan bütün JSON API isteklerinin encodingi UTF-8 formatında olmalıdır.

Request Header tag’ı ve altında gönderilecek parametreler aşağıdaki gibidir:

Alan Tip Zorunlu Uzunluk Açıklama
requestId String Evet Max 36 karakter Her işlem için üretilen unique ID değeridir.
swtId String Evet Max 36 karakter İşlemi gerçekleştiren işyeri yada firma adına tanımlanmış switch ID değerinin gönderildiği alandır.Testlerde, üst segmentte iletilen swtId kullanılabilir. Prod ortamı için işyerine tanımlanmış swtId kullanılmalıdır.
timestamp String Evet - İşlem zamanı bu alanda gönderilir.
userId String Evet Max 36 karakter İşlemi gerçekleştiren kullanıcının ID değerinin gönderildiği alandır. Herhangi bir data gönderilebilir ama işyerine özel bir değer olması önerilir. Bu data ile amaç, gönderilen isteğin hangi kişi ya da sistem tarafından ayrıştırılmasını sağlamaktır.
hashedData String Evet - İşyeri tarafından JSON API Request Hash Hesaplama Örneği başlığı altında verilen kriterlere göre hash hesaplaması yapılarak üretilen değer bu alanda yollanılır.

Response Header tag’ı ve altında dönülecek parametreler aşağıdaki gibidir:

Alan Tip Açıklama
requestId String Her işlem için üretilen unique ID değeridir. Request header’ında gönderilen alan ile aynı değeri tutacaktır.
swtId String İşlemi gerçekleştiren işyeri yada firma adına tanımlanmış switch ID değerinin gönderildiği alandır. Request header’ında gönderilen alan ile aynı değeri tutacaktır.
timestamp Timestamp İşlem zamanı bu alanda gönderilir. Buradaki değer Kart Saklama ve Switch sisteminde işlemin geçtiği timestamp değeridir.
userId String İşlemi gerçekleştiren kullanıcının ID değerinin gönderildiği alandır. Request header’ında gönderilen alan ile aynı değeri tutacaktır.
hashedData String JSON API Response Hash Hesaplama Örneği başlığı altında verilen kriterlere göre bir hash hesaplaması yapılarak üretilen değer bu alanda yollanılır.

Bütün JSON API response’larında header alanına ek olarak, header alanı dışında errorMap isimli, request’te gönderilen alanların datasal hata içerip içermediğini belirtilen bir Map dönmektedir.

Alan Tip Açıklama
errorMap Map<String, String> İstekte gönderilen alanların datasal hata içerip içermediğini iletir.

3D Servis Çağrıları için Hash Hesaplama

3D ile ödeme yaparken gönderilmesi gereken alanlardan biri hashedData isimli alandır. Bu alanda gönderilen 3D isteğinin içeriğinde yer alan belli başlı alanlar kullanılarak üretilen hash değeri beslenmelidir. Hash değeri hesaplamasında istek içerisinde gönderilen aşağıdaki parametrelerin yan yana String olarak concat edilip, Switch kullanıcısı için üretilen şifre değerinin hesaplamaya konulması gerekmektedir. Elde edilen son String değeri SHA256 algoritması kullanılarak hash hesabı için kullanılır. Hash sonucunda üretilen String büyük harflere çevrilip hashedData alanına beslenir. Yöntem ve örnek aşağıdaki gibidir :

Örnek Veri ve Hesaplama

hashedData = UPPERCASE(SHA256(swtId & orderId & txnType & txnAmount &\ntxnInstallmentCount & successUrl & failureUrl & txnTimestamp & txnCurrencyCode\n& switchPassword))\n\nÖrnek Data :\nswtid : CC82C381E078482AB328943FCCB7100C\norderId : unique_order_id\ntxnType : sales\ntxnAmount : 1.45\nxnInstallmentCount : 0\nsuccessUrl : https://garantibbvapos.com.tr/destek/postback.aspx\nfailureUrl : https://garantibbvapos.com.tr/destek/postback.aspx\ntxnTimestamp : 18032021222930\ntxnCurrencyCode : 949\nswitchPassword : 123asdASD@\n\nhashedData = UPPERCASE(SHA256(CC82C381E078482AB328943FCCB7100Cunique_order_idsales1.450\nhttps://garantibbvapos.com.tr/destek/postback.aspxhttps://garantibbvapos.com.tr/destek/postback.aspx18032021222930949123asdASD@))\n\nhashedData = 896F569528570C0735D319F9EA16B465B89EDC2E91362A28DD6D130FFCA728C8

Servis Cevapları için Hash Hesaplama

İşlem sonuçlarında dönen cevap içerisinde yer alan hashedData parametresini doğrulamak için örnek response header bilgisi ve bu bilgiye ait hash hesaplama yöntemi aşağıdaki gibidir:

Örnek Response Header

\"header\": {\n \"requestId\": \"ba0e96080c7b4216847ef71197d4ad06\",\n \"swtId\": \"CC82C381E078482AB328943FCCB7100C\",\n \"returnCode\": \"00\",\n \"reasonCode\": \"00\",\n \"message\": \"Başarılı\",\n \"timestamp\": 1615734734018,\n \"hashedData\": \"937D994CF3CB41912FE90595FD431197DB809B9C968B4C9F652B637434BCAAA5\"\n}

HashedData Hesaplama:

Response'da yer alan "timestamp" alanı Unix Timestamp olarak dönmektedir, ancak hash hesabı için bu değerin String formatında kullanılması gerekmektedir. Bu nedenle, Unix Timestamp değeri, String formatına dönüştürülmelidir.

HashedData hesaplama işlemi için aşağıdaki adımlar izlenir:

  • Concatenate: "requestId", "swtId", "returnCode", "reasonCode", "message" ve "timestamp.getTime()" değerleri birleştirilir. "timestamp.getTime()" ile Unix Timestamp değeri String formatına dönüştürülür.
  • Hashing: Birleştirilmiş bu değer, SHA256 algoritması kullanılarak bir hash değerine dönüştürülür.
  • Uppercase: Son olarak, elde edilen hash değeri büyük harfe çevrilir.

Örnek HashedData Hesaplaması:

requestId = \"ba0e96080c7b4216847ef71197d4ad06\"\nswtId = \"CC82C381E078482AB328943FCCB7100C\"\nreturnCode = \"00\"\nreasonCode = \"00\"\nmessage = \"Başarılı\"\ntimestamp = 1615734734018 (Unix Timestamp değeri)\nSwitch Password = \"123asdASD@\"\n\nHashedData hesaplaması için bu değerler kullanılırsa:\n\nConcatenatedValue = \"ba0e96080c7b4216847ef71197d4ad06CC82C381E078482AB328943FCCB7100C0000Başarılı1615734734018123asdASD@\"\nHashedData = UPPERCASE(SHA256(ConcatenatedValue))\nHashedData = \"937D994CF3CB41912FE90595FD431197DB809B9C968B4C9F652B637434BCAAA5\"\n

HashedData değeri, örnek response header'da belirtilen değerle aynıdır. Bu şekilde, API cevaplarında yer alan hashedData değerinin doğruluğu doğrulanabilir ve veri bütünlüğü sağlanmış olur.

3D ile Token Alma

3D akış üzerinden HTML POST metodu ile istek göndererek Switch modülüne tüm banka kartları için yalnızca Garanti Bankası sanalposu üzerinden token alma işlemleri gerçekleştirilebilir.

Üye iş yeri tarafından hazırlanacak HTML formunda POST isteğinin gönderileceği adresler ve form alanları aşağıdaki gibidir. Alanların her biri String olarak gönderilmelidir.

3D ile Token Alma/Güncelleme İstek Formu Alanları

 Alan  Zorunluluk  Uzunluk  Açıklama
 swtId  Evet  Max 36 Karakter  İşlem gerçekleştiren işyeri ya da firma adına tanımlanmış Switch ID değerinin gönderildiği alandır.
 requestId  Evet  Max 36 Karakter  Her işlem için üretilen unique ID değeridir.
 level  Evet  -  3D secure sonrasında işlemin provizyon devam edip etmeyeceğinin belirlendiği modelbilgisidir. Bu alan 3Dolarak set edilmelidir.
 cardNumber  Evet  Min:15 Karakter Max:30 Karakter  Kart numarasının gönderildiği alandır.
 cardExpireYear  Evet  2 Karakter  İşlemde kullanılan kartın son kullanma tarihinin yıl bilgisinin gönderildiği alandır.
 cardExpireMonth  Evet  2 Karakter  İşlemde kullanılan kartın son kullanma taihinin ay bilgisinin gönderildiği alandır.
 cardCvv  Hayır  3 Karakter  İşlemde kullanılan kartın CVV bilgisinin gönderildiği alandır.
 cardToken  Hayır  Max 32 Karakter  Token ID bilgisinin gönderildiği alandır.
 orderId  Hayır  Max 36 Karakter  Sipariş numarasının gönderildiği alandır.
 generateOrderId  Hayır  1 Karakter  İş yeri işlemde gönderdiği orderId’nin sanalposa iletilmesini istiyorsa “N”, sanalposun orderId yapısına uygun yeni bir orderId üretmesi isteniyorsa “Y”gönderilmelidir. Alan hiç gönderilmezse veya değeri boşgönderilirse de Switch yeni bir orderId üretir.
 userId  Evet  Max 36 Karakter  İşlem gerçekleştiren kullanıcının ID değerinin gönderildiği alandır.
 txnType  Evet  -  İşlem bilgisinin yollandığı alandır. "tokengenerate" olarak gönderilmelidir.
 txnAmount  Evet  -  İşlem tutarının yollanacağı alandır. Kuruş ayrımı “.” ile sağlanacaktır. Örnek: 1.45
 txnCurrencyCode  Evet  3 Karakter  Kur bilgisinin yollandığı alandır. ISO standartlarında 3 haneli kod gönderilecektir. Örnek: 949
 txnInstallmentCount  Hayır  Max 3 Karakter  İşlem taksit sayısının yollanacağı alandır.
 companyName  Hayır  Max 64 Karakter  Sayfa gösterimlerinde kullanılacak işyeri isim bilgisi yer alacaktır.
 successUrl  Evet  -  Başarılı işlem cevabının döndürüleceği işyerine ait adres bu alanda yer alacaktır.
 failureUrl  Evet  -  Hatalı işlem cevabının döndürüleceği işyerine ait adres bu alanda yer alacaktır.
 txnMotoInd  Hayır  1 Karakter  Yapılan işlemin mail order bir işlem olup olmadığı bilgisinin yollandığı alandır. 'Y' ise mail order işlem olarak algılanacaktır.
 txnTimestamp Evet  -  İşlem zamanı bu alanda gönderilir.
 lang Evet  -  Dil bilgisinin gönderildiği alandır. "tr" değeriningönderilmesi beklenir.
 refreshTime  Evet  -  Banka tarafında bir sayfa gösterimi olduğunda kullanılan alandır. 5 değeri gönderilmelidir.
 customerName  Hayır  Max 50 Karakter  Kart sahibinin isim bilgisi yer alacaktır.
 customerLastName Hayır  Max 50 Karakter  kart sahibinin soy isim bilgisi yer alacaktır.
 customerGsm Hayır  Max 16 Karakter  kart sahibinin GSM bilgisi yer alacaktır.
 customerIp  Evet  Max 20 Karakter  Kart sahibinin IP bilgisi yer alacaktır. Ipv4 formatında olmalıdır.
 customerEmail  Evet  Max 128 Karakter  Kart sahibinin email bilgisi yer alacaktır.
 customerNationalNumber  Hayır  Max 20 Karakter  Kart sahibinin TCKN bilgisi yer alacaktır.
 acqId  Evet  -  İşlem belirli bir bankanın sanalposu üzerindengönderilmek isteniyor isebu alan kullanılır. İstenilen Sanalpos için aşağıdaki rakamlara tekabül eden Id’ler kullanılmalıdır. Banka Kodu ve Adı:   64: İŞ BANK A.Ş.62:T.GARANTİ BANKASI A.Ş46: AKBANK T.A.Ş.111: QNB FİNANSBANK A.Ş. 10: T.C. ZİRAAT BANKASI A.Ş. 12: T. HALK BANKASI A.Ş. 67: YAPI KREDİ BANKASI
 hashedData  Evet  -  3D ile Ödeme Request Hash Hesaplama başlığı altında anlatılan kritelereuygun olarak işyeri tarafından oluşturularak istek içerisindegönderilecektir.
 shippingAddress.name  Hayır  Max 50 Karakter  Kargo adresine ait kişinin isim bilgisi yer alacaktır.
 shippingAddress.lastName  Hayır  Max 50 Karakter  Kargo adresine ait kişinin soyisim bilgisi yer alacaktır.
 shippingAddress.companyName Hayır  Max 64 Karakter  Kargo adresine ait sirket adı bilgisi yer alacaktır.
 shippingAddress.city Hayır  Max 50 Karakter  Kargo adresine ait şehir adı bilgisi yer alacaktır.
 shippingAddress.country Hayır  Max 50 Karakter  Kargo adresine ait ülke adı bilgisi yer alacaktır.
 shippingAddress.zipCode Hayır  Max 16 Karakter  Kargo adresine ait posta kodu bilgisi yer alacaktır.
 shippingAddress.addressDetail Hayır  Max 256 Karakter  Kargo adresine ait detay adres alanı bilgisi yer alacaktır.
 shippingAddress.phone Hayır  Max 36 Karakter  Kargo adresine ait telefon bilgisi yer alacaktır.
 shippingAddress.gsm Hayır  Max 16 Karakter  Kargo adresine ait GSM bilgisi yer alacaktır.
 shippingAddress.email Hayır  Max 128 Karakter  Kargo adresine ait mail bilgisi yer alacaktır.
 billingAddress.name Hayır  Max 50 Karakter  Fatura adresine ait kişinin isim bilgisi yer alacaktır.
 billingAddress.lastName Hayır  Max 50 Karakter  Fatura adresine ait kişinin soyisim bilgisi yer alacaktır.
 billingAddress.companyName Hayır  Max 64 Karakter  Fatura adresine ait sirket adı bilgisi yer alacaktır.
 billingAddress.city Hayır  Max 50 Karakter  Kargo adresine ait şehir adı bilgisi yer alacaktır.
 billingAddress.country Hayır  Max 50 Karakter  Kargo adresine ait ülke adı bilgisi yer alacaktır.
 billingAddress.zipCode Hayır  Max 16 Karakter  Kargo adresine ait posta kodu bilgisi yer alacaktır.
 billingAddress.addressDetail Hayır  Max 256 Karakter  Kargo adresine ait detay adres alanı bilgisi yer alacaktır.
 billingAddress.phone Hayır  Max 36 Karakter  Kargo adresine ait telefon bilgisi yer alacaktır.
 billingAddress.gsm Hayır  Max 16 Karakter  Kargo adresine ait GSM bilgisi yer alacaktır.
 billingAddress.email Hayır  Max 128 Karakter  Kargo adresine ait mail bilgisi yer alacaktır.
 hashVersion Evet  -  “2.0” olarakgönderilmelidir.

3D ile Token Alma Cevap Formu Alanları

3D Secure response mesajı, üye işyerinin istek mesajında gönderdiği successUrl ya da failureUrl adreslerine aşağıda yer alan data seti ile birlikte Switch 3D Secure Gateway tarafından HTML Form olarak POST edilecektir.

Alan Açıklama
swtId SwitchID bilgisinin dönüldüğü alandır.
requestId İstek sırasında işyeri tarafından gönderilen tekil ID bilgisinin dönüldüğü alandır.
txnId İşlem ID bilgisinin dönüldüğü alandır.
orderId Sipariş numarasının dönüldüğü alandır.
returnCode Switch Cevap koduna ait bilgilerin dönüldüğü bir alandır.
reasonCode Switch Alt Cevap koduna ait bilgilerin dönüldüğü bir alandır.
message Cevap açıklamasının döndürüldüğü alandır.
installmentCount Taksit sayısının döndürüldüğü alandır.
txnAmount İşlem tutarının döndürüldüğü alandır.
currencyCode Döviz cinsinin dönüldüğü alandır.
maskedNumber Maskeli kart numarasının dönüleceği alandır.
acquirerId Provizyon alınan banka ID bilgisinin dönüldüğü alandır.
acquirerName Provizyon alınan banka isminin dönüldüğü alandır.
orderId Sipariş numarasının dönüldüğü alandır.
hashedData Cevap hash bilgisinin dönüldüğü alandır. Üye işyerinin bu alanda dönen hash değerini hesaplayarak doğrulaması beklenir. 3D ile Ödeme Response Hash Hesaplama başlığı altında anlatılan kritelere uygun olarak işyeri tarafından hesaplanması gerekmektedir.
terminalId işlem yapılan terminal bilgisinin dönüldüğü alandır.
merchantId İşlem yapılan işyeri numarasının dönüldüğü alandır.
authCode Onay alan provizyon işlemlerinde onay kodunun döndüğü alandır.
successUrl İşyerine ait başarılı işlem URL’inin dönüldüğü alandır.
failureUrl İşyerine ait başarısız işlem URL’inin dönüldüğü alandır.
approved İşlemin onaylanıp onaylanmadığı bilgisinin dönüldüğü alandır.
retrefNum Banka tarafındaki tekil işlem numarasının dönüldüğü alandır.
response Switch uygulamasına ait sonuç bilgisinin dönüldüğü alandır.
mdErrorMessage 3D secure doğrulaması sonucunda MD cevap mesajının döndüğü alandır.
eci 3D secure doğrulaması sonucunda alınan ECI değerinin dönüldüğü alandır.
cavv 3D secure doğrulaması sonucunda alınan CAVV değerinin dönüldüğü alandır.
md 3D secure doğrulaması sonucunda alınan MD değerinin dönüldüğü alandır.
xid 3D secure doğrulaması sonucunda alınan XID değerinin dönüldüğü alandır.
mdStatus 3D secure doğrulaması sonucunda alınan MD STATUS değerinin dönüldüğü alandır.
acqReturnCode İşyeri bankası tarafında üretilen cevap kodunun döndürüldüğü alandır.
acqReasonCode İşyeri bankası tarafında üretilen alt cevap kodunun döndürüldüğü alandır.
sec3DTokenResCode 3D secure doğrulaması ile token alma cevap kodunun döndüğü alandır.
sec3DTokenRetCode 3D secure doğrulaması ile token alma alt cevap kodunun döndüğü alandır.
additionalData Token alma isteğinde gönderilen additionalData değerinin döndüğü alandır.
expireDate Kart SKT bilgisinin mmYY formatında döndüğü alandır.
sec3DTokenResMessage 3D secure doğrulaması ile token alma cevap mesajının döndüğü alandır.
token 3D secure doğrulaması başarıyla sonlandıktan sonra token üretildiyse token bilgisinin döndüğü alandır.
vposOrderId İstek mesajında generateOrderId Y veya boş olarak gönderildiyse ya da bu alan hiç gönderilmediyse Switch tarafından oluşturulan orderid değeridir.

3D ile Token Alma Örnek İstek ve Cevap Formu

3D akış ile token alma için örnek HTML formu HTML Table formatında aşağıda verilmiştir. Buradaki alanlar istenilen şekilde doldurulup, 3D request hash hesabı yapılıp hashedData alanına set edildikten sonra aşağıda verilen test veya prod url’ine Form Submit edilerek 3D ile token alma/token güncelleme isteği tetiklenebilir. POST edilen data application/x-www- form-urlencoded tipinde olmalıdır.

PROD Ortamı:\nhttps://kartsaklamabackend.garanti.com.tr/swt3dengine\n\nTEST Ortamı:\nhttps://gbtaksimtunel-integration.garanti.com.tr/swt3dengine
<html>\n <head>\n <title>3D_PAY Tester</title>\n </head>\n <body>\n <form name=\"myform\" action=\"https://gbtaksimtunel- integration.garanti.com.tr/swt3dengine\" method=\"POST\">\n <TABLE id=\"table\">\n <TBODY>\n <TR colspan=\"2\">\n <TD><INPUT name=\"submit\" type=\"submit\" value=\"Submit\"></TD>\n </TR>\n <TR>\n <TD>swtId</TD>\n <TD><input type=\"text\" id=\"swtId\" name=\"swtId\" value=\"CC82C381E078482AB328943FCCB7100C\"></TD>\n </TR>\n <TR>\n <TD>requestId</TD>\n <TD><input type=\"text\" id=\"requestId\" name=\"requestId\" value=\"130920218110878652\"></TD>\n </TR>\n <TR>\n <TD>level</TD>\n <TD><input type=\"text\" id=\"level\" name=\"level\" value=\"3D\"></TD>\n </TR>\n <TR>\n <TD>txnType</TD>\n <TD><input type=\"text\" id=\"txnType\" name=\"txnType\" value=\"tokengenerate\"></TD>\n </TR>\n <TR>\n <TD>cardNumber</TD>\n <TD><input type=\"text\" name=\"cardNumber\" value=\"5549601634451019\"></TD>\n </TR>\n <TR>\n <TD>cardExpireYear</TD>\n <TD><input type=\"text\" name=\"cardExpireYear\" value=\"25\"></TD>\n </TR>\n <TR>\n <TD>cardExpireMonth</TD>\n <TD><input type=\"text\" name=\"cardExpireMonth\" value=\"02\"></TD>\n </TR>\n <TR>\n <TD>cardCvv</TD>\n <TD><input type=\"text\" name=\"cardCvv\" value=\"\"></TD>\n </TR>\n <TR>\n <TD>cardToken</TD>\n <TD><input type=\"text\" name=\"cardToken\" value=\"\"></TD>\n </TR>\n <TR>\n <TD>additionalData</TD>\n <TD><input type=\"text\" name=\"additionalData\" value=\"\"></TD>\n </TR>\n <TR>\n <TD>orderId</TD>\n <TD><input type=\"text\" id=\"orderId\" name=\"orderId\" value=\"order13091\"></TD>\n </TR>\n <TR>\n <TD>generateOrderId</TD>\n <TD><input type=\"text\" id=\"generateOrderId\" name=\"generateOrderId\" value=\"Y\"></TD>\n </TR>\n <TR>\n <TD>userId</TD>\n <TD><input type=\"text\" id=\"userId\" name=\"userId\" value=\"PROVAUT\"></TD>\n </TR>\n <TR>\n <TD>customerIp</TD>\n <TD><input type=\"text\" name=\"customerIp\" value=\"127.0.0.1\"></TD>\n </TR>\n <TR>\n <TD>customerEmail</TD>\n <TD><input type=\"text\" name=\"customerEmail\" value=\"customer@mail.com\"></TD>\n </TR>\n <TR>\n <TD>txnAmount</TD>\n <TD><input type=\"text\" id=\"txnAmount\" name=\"txnAmount\" value=\"1.50\"></TD>\n </TR>\n <TR>\n <TD>txnCurrencyCode</TD>\n <TD><input type=\"text\" name=\"txnCurrencyCode\" value=\"949\"></TD>\n </TR>\n <TR>\n <TD>txnInstallmentCount</TD>\n <TD><input type=\"text\" id=\"txnInstallmentCount\" name=\"txnInstallmentCount\" value=\"0\"></TD>\n </TR>\n <TR>\n <TD>companyName</TD>\n <TD><input type=\"text\" name=\"companyName\" value=\"your_company_name\"></TD>\n </TR>\n <TR>\n <TD>successUrl</TD>\n <TD><input type=\"text\" id=\"successUrl\" name=\"successUrl\"\n value=\"https://garantibbvapos.com.tr/destek/postback.aspx\"></TD>\n </TR>\n <TR>\n <TD>failureUrl</TD>\n <TD><input type=\"text\" id=\"failureUrl\" name=\"failureUrl\" value=\"https://garantibbvapos.com.tr/destek/postback.aspx\"></TD>\n </TR>\n <TR>\n <TD>txnMotoInd</TD>\n <TD><input type=\"text\" name=\"txnMotoInd\" value=\"N\"></TD>\n </TR>\n <TR>\n <TD>txnTimestamp</TD>\n <TD><input type=\"text\" id=\"txnTimestamp\" name=\"txnTimestamp\" value=\"20100111174711\"></TD>\n </TR>\n <TR>\n <TD>lang</TD>\n <TD><input type=\"text\" name=\"lang\" value=\"tr\"></TD>\n </TR>\n <TR>\n <TD>refreshTime</TD>\n <TD><input type=\"text\" name=\"refreshTime\" value=\"5\"></TD>\n </TR>\n <TR>\n <TD>hashedData</TD>\n <TD><input id=\"hashedData\" type=\"text\" name=\"hashedData\" value=\"replace with value calculated from 3D Request Hash Calculation\"></TD>\n </TR>\n <TR>\n <TD>acqId</TD>\n <TD><input type=\"text\" name=\"acqId\" value=\"62\">\n </TR>\n <TR>\n <TD>customerName</TD>\n <TD><input type=\"text\" name=\"customerName\" value=\"name\"></TD>\n </TR>\n <TR>\n <TD> customerLastName</TD>\n <TD><input type=\"text\" name=\"customerLastName\" value=\"surname\"></TD>\n </TR>\n <TR>\n <TD>customerGsm</TD>\n <TD><input type=\"text\" name=\"customerGsm\" value=\"5555555555\"></TD>\n </TR>\n <TR>\n <TD>customerNationalNumber</TD>\n <TD><input type=\"text\" name=\"customerNationalNumber\" value=\"40887026099\"></TD>\n </TR>\n <TR>\n <TD>hashVersion</TD>\n <TD><input type=\"text\" name=\"hashVersion\" value=\"2.0\"></TD>\n </TR>\n </TBODY>\n </TABLE>\n </form>\n </body>\n<html>

3D HTML Response Form Sample (Token Alma)

Kod Örnekleri

Aşağıda, çeşitli yazılım dilleri kullanılarak yazılmış özel kod örneklerinin linkleri verilmiştir. Tercih ettiğiniz programlama diline ait link üzerinden, önceden belirlenmiş değerlerle yazılmış olan kodları detaylı bir şekilde inceleyebilirsiniz.

Bu örnekler, ilgili işlem tipini içeren kodları içermektedir ve farklı dillerde yazıldığı için çeşitli yaklaşımları ve pratikleri de gözlemleyebilirsiniz. Bu sayede tercih ettiğiniz programlama diline dair daha iyi anlaşılır ve özgün örneklerle çalışma imkanı bulabilirsiniz.

C# Kod Örnekleri için tıklayınız.

VB.Net Kod Örnekleri için tıklayınız.

Java Kod Örnekleri için tıklayınız.

PHP Kod Örnekleri için tıklayınız.

Unutmayın ki bu örnekler ön tanımlı değerlerle yazılmıştır ve gerçek projelerde kullanımı için gerekli uyarlama ve güvenlik önlemleri almanız gerekebilir.

Test Kartları

Test kartları listesine bu sayfadan ulaşabilirsiniz.

Sizden haber almak isteriz. Hizmetlerle ilgili sorunlarınız/sorunuz mu var? Bize bununla ilgili ayrıntılı bir e-posta gönderir misiniz?

Bize Soru Gönderin Bize Soru Gönderin