Entegrasyon Adımları
Genel Özet
Örnek Uygulama
Temel NON-3DS uygulaması, kısaca birbirini takip eden iki POST isteğinden oluşur.
Önerilen entegrasyon aşağıdaki sırayla izlenir;
1. BIN Sorgulama
İster 3DS ister NON-3DS ödeme yöntemi olsun, alışverişte kullanılacak kartın özelliğinin önceden belirlenmesi tavsiye edilir. BIN detay hizmetleri sayesinde kart türü, kart şeması, kart ile ilgili taksit bilgileri ve 3DS özelliklerine ilişkin daha ayrıntılı bilgiler alınır.
Taksit Bilgisini Almaya Yönelik Örnek İstek;
Copy {
"price" : "100.0" ,
"binNumber" : "535805"
}
Taksit Bilgisini Almaya Yönelik Örnek Yanıt;
Copy {
"status" : "success" ,
"locale" : "tr" ,
"systemTime" : 1685905139724 ,
"installmentDetails" : [
{
"binNumber" : "535805" ,
"price" : 100.0 ,
"cardType" : "DEBIT_CARD" ,
"cardAssociation" : "MASTER_CARD" ,
"cardFamilyName" : "iyzico DC" ,
"force3ds" : 0 ,
"bankCode" : 864 ,
"bankName" : "iyzico" ,
"forceCvc" : 0 ,
"commercial" : 0 ,
"dccEnabled" : 0 ,
"installmentPrices" : [
{
"installmentPrice" : 100.0 ,
"totalPrice" : 100.0 ,
"installmentNumber" : 1
}
]
}
]
}
2. Ödeme Oluşturma
NON-3DS ödeme yolculuğu, Ödeme Oluşturma POST
isteği ile başlar.
Ödeme Oluşturmaya Yönelik Örnek İstek;
Copy {
"locale" : "en" ,
"conversationId" : "deviyzico" ,
"price" : "10.01" ,
"paidPrice" : "10.01" ,
"currency" : "TRY" ,
"installment" : 1 ,
"paymentChannel" : "WEB" ,
"basketId" : "B67832" ,
"paymentGroup" : "PRODUCT" ,
"paymentCard" : {
"cardHolderName" : "Mehmet Test" ,
"cardNumber" : "5526080000000006" ,
"expireYear" : "2028" ,
"expireMonth" : "11" ,
"cvc" : "245" ,
"registerCard" : 0
} ,
"buyer" : {
"id" : "BY789" ,
"name" : "John" ,
"surname" : "Doe" ,
"identityNumber" : "11111111111" ,
"email" : "test@testtt.com" ,
"gsmNumber" : "+905393623333" ,
"registrationDate" : "2013-04-21 15:12:09" ,
"lastLoginDate" : "2015-10-05 12:43:35" ,
"registrationAddress" : "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1" ,
"city" : "Istanbul" ,
"country" : "Turkey" ,
"zipCode" : "34732" ,
"ip" : "85.34.78.112"
} ,
"shippingAddress" : {
"address" : "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1" ,
"zipCode" : "34742" ,
"contactName" : "Jane Doe" ,
"city" : "Istanbul" ,
"country" : "Turkey"
} ,
"billingAddress" : {
"address" : "Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1" ,
"zipCode" : "34742" ,
"contactName" : "Jane Doe" ,
"city" : "Istanbul" ,
"country" : "Turkey"
} ,
"basketItems" : [
{
"id" : "BI101" ,
"price" : "10.01" ,
"name" : "Binocular" ,
"category1" : "Collectibles" ,
"category2" : "Accessories" ,
"itemType" : "PHYSICAL"
}
]
}
Ödeme Oluşturmaya Yönelik Örnek Yanıt;
Copy {
"status" : "success" ,
"locale" : "en" ,
"systemTime" : 1686413012592 ,
"conversationId" : "deviyzico" ,
"price" : 10.01 ,
"paidPrice" : 10.01 ,
"installment" : 1 ,
"paymentId" : "19682125" ,
"fraudStatus" : 1 ,
"merchantCommissionRate" : 0E-8 ,
"merchantCommissionRateAmount" : 0.00 ,
"iyziCommissionRateAmount" : 0.40040000 ,
"iyziCommissionFee" : 0.25000000 ,
"cardType" : "CREDIT_CARD" ,
"cardAssociation" : "MASTER_CARD" ,
"cardFamily" : "Axess" ,
"binNumber" : "552608" ,
"lastFourDigits" : "0006" ,
"basketId" : "B67832" ,
"currency" : "TRY" ,
"itemTransactions" : [
{
"itemId" : "BI101" ,
"paymentTransactionId" : "20945921" ,
"transactionStatus" : 2 ,
"price" : 10.01 ,
"paidPrice" : 10.01000000 ,
"merchantCommissionRate" : 0E-8 ,
"merchantCommissionRateAmount" : 0E-8 ,
"iyziCommissionRateAmount" : 0.40040000 ,
"iyziCommissionFee" : 0.25000000 ,
"blockageRate" : 0E-8 ,
"blockageRateAmountMerchant" : 0E-8 ,
"blockageRateAmountSubMerchant" : 0 ,
"blockageResolvedDate" : "2023-06-18 00:00:00" ,
"subMerchantPrice" : 0 ,
"subMerchantPayoutRate" : 0E-8 ,
"subMerchantPayoutAmount" : 0 ,
"merchantPayoutAmount" : 9.35960000 ,
"convertedPayout" : {
"paidPrice" : 10.01000000 ,
"iyziCommissionRateAmount" : 0.40040000 ,
"iyziCommissionFee" : 0.25000000 ,
"blockageRateAmountMerchant" : 0E-8 ,
"blockageRateAmountSubMerchant" : 0E-8 ,
"subMerchantPayoutAmount" : 0E-8 ,
"merchantPayoutAmount" : 9.35960000 ,
"iyziConversionRate" : 0 ,
"iyziConversionRateAmount" : 0 ,
"currency" : "TRY"
}
}
] ,
"authCode" : "013627" ,
"phase" : "AUTH" ,
"hostReference" : "mock00007iyzihostrfn"
}
3. Ödeme Bilgilerine Erişim(Opsiyonel)
Yukarıdaki tüm adımları tamamladıktan sonra, artık Issuer ile Acquirer arasındaki ödeme işlemini Ödeme Bilgilerine Erişim isteği ile kontrol etme zamanı.
Ödeme Bilgilerine Erişim adımı, paydaşlarımıza ürünlerini göndermeden önce gerçekleştirmelerini tavsiye ettiğimiz ek bir önlemdir.
Ödeme Bilgilerine Erişime Yönelik Örnek İstek;
Copy {
"locale" : "tr" ,
"paymentId" : "19682125" //or "paymentConversationId":"deviyzico"
}
Ödeme Bilgilerine Erişime Yönelik Örnek Yanıt;
Copy {
"status" : "success" ,
"locale" : "tr" ,
"systemTime" : 1686413104142 ,
"price" : 10.01000000 ,
"paidPrice" : 10.01000000 ,
"installment" : 1 ,
"paymentId" : "19682125" ,
"fraudStatus" : 1 ,
"merchantCommissionRate" : 0E-8 ,
"merchantCommissionRateAmount" : 0E-8 ,
"iyziCommissionRateAmount" : 0.40040000 ,
"iyziCommissionFee" : 0.25000000 ,
"cardType" : "CREDIT_CARD" ,
"cardAssociation" : "MASTER_CARD" ,
"cardFamily" : "Axess" ,
"binNumber" : "552608" ,
"lastFourDigits" : "0006" ,
"basketId" : "B67832" ,
"currency" : "TRY" ,
"itemTransactions" : [
{
"itemId" : "BI101" ,
"paymentTransactionId" : "20945921" ,
"transactionStatus" : 2 ,
"price" : 10.01000000 ,
"paidPrice" : 10.01000000 ,
"merchantCommissionRate" : 0E-8 ,
"merchantCommissionRateAmount" : 0E-8 ,
"iyziCommissionRateAmount" : 0.40040000 ,
"iyziCommissionFee" : 0.25000000 ,
"blockageRate" : 0E-8 ,
"blockageRateAmountMerchant" : 0E-8 ,
"blockageRateAmountSubMerchant" : 0E-8 ,
"blockageResolvedDate" : "2023-06-18 00:00:00" ,
"subMerchantPrice" : 0E-8 ,
"subMerchantPayoutRate" : 0E-8 ,
"subMerchantPayoutAmount" : 0E-8 ,
"merchantPayoutAmount" : 9.35960000 ,
"convertedPayout" : {
"paidPrice" : 10.01000000 ,
"iyziCommissionRateAmount" : 0.40040000 ,
"iyziCommissionFee" : 0.25000000 ,
"blockageRateAmountMerchant" : 0E-8 ,
"blockageRateAmountSubMerchant" : 0E-8 ,
"subMerchantPayoutAmount" : 0E-8 ,
"merchantPayoutAmount" : 9.35960000 ,
"iyziConversionRate" : 0E-8 ,
"iyziConversionRateAmount" : 0E-8 ,
"currency" : "TRY"
}
}
] ,
"authCode" : "013627" ,
"phase" : "AUTH" ,
"hostReference" : "mock00007iyzihostrfn" ,
"paymentStatus" : "SUCCESS"
}
4. Webhook
Webhook’lar NON-3DS akışımızın son konusudur.
Gerçek zamanlı ödeme bildirimlerinin alınması, genel olarak 3DS deneyiminden yararlanırken bildirimlerin güvenilir kaynaklardan gelmesini sağlar ve hassas verilere olası müdahaleleri veya yetkisiz erişimi önler.
Her ödeme olayı Webhook’ları tetikler;
Sunucunuz 200
yanıtını alana kadar.
Örnek Webhook 3DS Yetkilendirmesi
Olumlu senaryo status
değişkeninin success
dönmesiyle gerçekleşir.
Doğrulama
Ödeme işlemlerinin başarılı bir şekilde sonuçlandırılmasında belirli değişkenlerin korelasyonu önemli rol oynar;
Ödeme Oluşturma yanıtı ve Webhook bildiriminin birbirini doğrulaması hayati önem taşımaktadır.
Ödeme Oluşturma yanıtında bulunan paymentId
değişkeni Webhook ’tan gelen paymentId
değişkeniyle aynı olmalıdır.
Her iki istekten gelen status
değişkeni success
olmalıdır.
price
parametresindeki miktar aynı olmalıdır.
Ve son olarak, Eşleştirme parametreleri de eşit olmalıdır.
Eğer eşitse, tebrikler! NON-3DS entegrasyonunu bitirdiniz.
İşlem detaylarına panelinizden ulaşabilirsiniz.