NON-3DS Entegrasyonu

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;

{
"price":"100.0",
"binNumber":"535805"
}

Taksit Bilgisini Almaya Yönelik Örnek Yanıt;

{
    "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;

{
   "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;

{
    "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;

{  
   "locale":"tr",
   "paymentId":"19682125" //or "paymentConversationId":"deviyzico"
}

Ödeme Bilgilerine Erişime Yönelik Örnek Yanıt;

{
    "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;

  • Her 15 saniyede bir

  • Sunucunuz 200 yanıtını alana kadar.

  • Her 10 dakikada bir

  • Maksimum 3 kere

Örnek Webhook 3DS Yetkilendirmesi

ParametereTypeDescription

iyziEventTime

long

Unix timestamp value of first notification.

iyziEventType

string

Shows the request type. Values: API_AUTH, THREE_DS_AUTH, BKM_AUTH

iyziReferenceCode

string

A unique reference code for the notification

paymentId

long

Unique iyzico reference code of related payment

paymentConversationId

string

Merchant's reference id for the related payment

status

string

Payment status. Values: SUCCESS, FAILURE

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;

  • paymentId

  • status

  • price

  • Diğer Eşleştirme parametreleri opsiyoneldir.

Ö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.

Last updated