3D Ödeme

3D Ödeme Servisi İstek Modeli;

Metod
API URL
Parametreler

POST

https://posservice.paypole.com/api/pay/EYV3DPay

JSON File

3D Ödeme Servisi İşlem Akışı;

3D ödeme modelini kullanarak başarılı bir tahsilat gerçekleştirmek için aşağıda maddeler halinde açıklanan işlemleri takip ederek entegrasyonunuzu tamamlamanız gerekmektedir.

1. Adım:

Üye işyeri kullanıcı, kart, sepet, ödeme tutar ve taksit bilgilerini, ödemenin sonucunun bildirilmesini istediği kendi web adresi(BACK_URL) bilgisi ile birlikte PayPole 3D ödeme servisine yukarıda belirtilmiş olan istek modelini kullanarak ödeme isteğini gönderir ve ödeme işlemini başlatmış olur.

Güvenli ve sorunsuz bir şekilde işlemlerin gerçekleşebilmesi ve fraud işlemlerin önlenebilmesi için tüm parametrelerin eksiksiz bir şekilde gönderilmesi gerekmektedir.

Servise gönderilmesi gereken parametreler şu şekildedir;

3D Ödeme Servisi İstek Mesajı Parametreleri

Parametre
Tip
Zorunlu
Açıklama

MERCHANT

string

Evet

Üye iş yerine özel oluşturulan eşsiz kimlik bilgisidir.

MERCHANT_KEY

string

Evet

Üye iş yerine özel oluşturulan anahtar bilgisidir.

BACK_URL

string

Evet

İşlem sonuç cevabının sistem tarafından döndürüleceği adres bilgisidir. İşlem cevabı üye iş yeri tarafından bu adresten okunacaktır. İşlem sonucu form post olarak gönderilir.

PRICES_CURRENCY

string

Evet

Ödeme işleminin gerçekleştirileceği para birimi bilgisidir. Şu an için sadece “TRY, USD, EUR, GBP” gönderilebilir.

ORDER_REF_NUMBER

string

Evet

Üye iş yeri tarafından verilecek referans numarası bilgisidir. Ödeme işlemleri bu referans numarası ile takip edilebilir. Maksimum 24 karakter kullanılabilir.

ORDER_AMOUNT

string

Evet

Ödeme işlemine ait işlem tutarı bilgisidir.

CC_NUMBER

string

Evet

Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir.

EXP_MONTH

string

Evet

Ödeme işleminin gerçekleştirileceği karta ait 2 haneli son kullanım tarihini ay bilgisidir.

EXP_YEAR

string

Evet

Ödeme işleminin gerçekleştirileceği karta ait 4 haneli son kullanım tarihini yıl bilgisidir.

CC_CVV

string

Evet

Ödeme işleminin gerçekleştirileceği kartın arka yüzünde bulunan 3 haneli güvenlik kodu bilgisidir.

CC_OWNER

string

Evet

Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.

INSTALLMENT_NUMBER

string

Evet

Ödeme işlemi için istenen taksit sayısı bilgisidir. Tek çekim işlemler için “1” bilgisi gönderilmelidir.

FIRST_NAME

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) adı bilgisidir.

LAST_NAME

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) soyadı bilgisidir.

MAIL

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) mail bilgisidir.

PHONE

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) telefon bilgisidir.

CITY

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) şehir bilgisidir.

STATE

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) ilçe bilgisidir.

ADDRESS

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) adres bilgisidir.

CLIENT_IP

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) IP adres bilgisidir.

Product

Parametre
Tip
Zorunlu
Açıklama

PRODUCT_ID

string

Evet

Ürüne üye işyeri tarafından verilen ID bilgisidir.

PRODUCT_NAME

string

Evet

Ürünün ad bilgisidir.

PRODUCT_CATEGORY

string

Evet

Ürünün kategori bilgisidir.

PRODUCT_DESCRIPTION

string

Evet

Ürünün açıklama bilgisidir.

PRODUCT_AMOUNT

string

Evet

Ürünün tutar bilgisidir.

Servise gönderilecek örnek bir JSON dosyası şu şekildedir;

                                            
{
     "Config" :  {
         "MERCHANT" : "TEST1234",
         "MERCHANT_KEY" : "4oK26hK8MOXrIV1bzTRVPA==",
         "BACK_URL" : "İşlem sonucunun üye iş yerine döndürüleceği url adresi",
         "PRICES_CURRENCY" : "TRY",
         "ORDER_REF_NUMBER" : "RFN0001",
         "ORDER_AMOUNT" : "150"
     },
     "CreditCard" : {
         "CC_NUMBER" : "4159562885391991",
         "EXP_MONTH" : "12",
         "EXP_YEAR" : "2023",
         "CC_CVV" : "000",
         "CC_OWNER" : "TEST USER",
         "INSTALLMENT_NUMBER" : "1"
     },
     "Customer" : {
         "FIRST_NAME" : "Firstname",
         "LAST_NAME" : "Lastname",
         "MAIL" : "destek@paypole.com",
         "PHONE" : "05435434343",
         "CITY" : "İstanbul",
         "STATE" : "Kağıthane",
         "ADDRESS" : "Esentepe Mah. Büyükdere Cad. No: 122 Özsezen İş Merkezi A Blok Kat:8 Şişli İstanbul",
         "CLIENT_IP" : "123.44.66.38"
     },
     "Product" : [
         {
             "PRODUCT_ID" : "1",
             "PRODUCT_NAME" : "Ürün Adı 1",
             "PRODUCT_CATEGORY" : "Elektronik",
             "PRODUCT_DESCRIPTION" : "Ürün Açıklaması",
             "PRODUCT_AMOUNT" : "80"
         },
         {
             "PRODUCT_ID" : "2",
             "PRODUCT_NAME" : "Ürün Adı 1",
             "PRODUCT_CATEGORY" : "Ev Tekstili",
             "PRODUCT_DESCRIPTION" : "Ürün Açıklaması",
             "PRODUCT_AMOUNT" : "70"
         }
     ]
}
                                        

2. Adım:

PayPole bilgileri değerlendirerek üye iş yerine cevap mesajını gönderir.(Cevap mesajı içerisinde URL_3DS alanı bulunur.)

Servisten işlem sonrasında gönderilen cevap mesajına ait parametreler şu şekildedir;

3D Ödeme Servisi Cevap Mesajı Parametreleri

Parametre
Tip
Zorunlu
Açıklama

ORDER_REF_NUMBER

string

Evet

Üye iş yeri tarafından ödeme isteğinde, isteğe ait verilen referans numarası bilgisidir.

STATUS

string

Evet

Ödeme işlemi sonucu durum bilgisidir.

RETURN_CODE

string

Evet

Ödeme işlemi sonucu durumu kod bilgisidir.

RETURN_MESSAGE

string

Evet

Ödeme işlemi sonucu durum mesaj bilgisidir.

RETURN_MESSAGE_TR

string

Evet

Ödeme işlemi sonucu durum mesajı için Türkçe açıklama bilgisidir.

ERROR_CODE

string

Evet

Başarısız ödeme işlemi sonucu hata kod bilgisidir. Banka hata kodları da bu parametre içerisinde dönüş yapılır.

DATE

string

Evet

Ödeme işlemi için işlem tarihi bilgisidir.

URL_3DS

string

Evet

Üye iş yerinin kullanıcıyı yönlendireceği 3D Doğrulama Sayfası URL Adresi

REFNO

string

Evet

Ödeme işlemine ait PayPole sistemi tarafından verilen referans numarası bilgisi

HASH

string

Evet

Ödeme işlemine ait PayPole sistemi tarafından oluşturulan hash bilgisi

CUSTOMER_NAME

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) ad soyad bilgisidir.

CUSTOMER_MAIL

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) mail bilgisidir.

CUSTOMER_PHONE

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) telefon bilgisidir.

CUSTOMER_ADDRESS

string

Evet

İşlemi gerçekleştiren kullanıcının(müşterinin) adres bilgisidir.

CUSTOMER_CC_NUMBER

string

Evet

Ödeme işleminin gerçekleştirileceği karta ait 16 haneli kart numarası bilgisidir. Kart bilgisi şifrelenmiş şekilde paylaşılır.

CUSTOMER_CC_NAME

string

Evet

Ödeme işleminin gerçekleştirileceği kart sahibinin ad ve soyadı bilgisidir.

IS_NOT_3D_PAYMENT

boolean

Evet

Ödeme işleminin 3D gerçekleşip gerçekleşmediği bilgisidir.

VIRTUAL_POS_VALUES

string

Evet

Ödeme işlemine ait sanalpos açıklamaları bilgisidir.

RETURN_MESSAGE_3D

string

Evet

Bankadan alınan 3D ödeme işlemine ait cevap mesajı bilgisidir.

BANK_AUTH_CODE

string

Evet

Bankadan alınan 3D ödeme işlemine ait provizyon bilgisidir.

                                            
{
     "ORDER_REF_NUMBER": "RFN0001",
     "STATUS": "SUCCESS",
     "RETURN_CODE": "0",
     "RETURN_MESSAGE": "SUCCESS",
     "RETURN_MESSAGE_TR": null,
     "ERROR_CODE": null,
     "DATE": "27.07.2020 16:07:08",
     "URL_3DS": "http://posservicetest.paypole.com/api/pay/3DSecurity/order/12d2cd918afd2413116d25c2470d6d24924b44e9c440c18aed32922eddff6c40",
     "REFNO": "150840",
     "HASH": "12d2cd918afd2413116d25c2470d6d24924b44e9c440c18aed32922eddff6c40",
     "COMMISSION_RATE": "1,490",
     "CUSTOMER_NAME": "Firstname Lastname",
     "CUSTOMER_MAIL": "destek@paypole.com",
     "CUSTOMER_PHONE": "05435434343",
     "CUSTOMER_ADDRESS": "Merkez Mahallesi, Ayazma Cd. No:37/91 Papirus Plaza Kat:5, 34406 Kağıthane / İSTANBUL",
     "CUSTOMER_CC_NUMBER": "415956******1991",
     "CUSTOMER_CC_NAME": null,
     "IS_NOT_3D_PAYMENT": false,
     "VIRTUAL_POS_VALUES": null,
     "RETURN_MESSAGE_3D": null,
     "BANK_AUTH_CODE": ""
}
                                        

3D Ödeme işlem cevap mesajında STATUS parametresinin değeri SUCCESS ve RETURN_CODE parametresinin değeri 0 olarak dönmesi 3D Ödeme işleminin kabul edildiğini ifade etmektedir. Bundan sonraki aşamada ödeme alınacak kullanıcıdan 3D doğrulama işlemi yapılacaktır.

3. Adım:

Üye işyeri aldığı cevabı değerlendirerek ödeme kabul edildi ise PayPol'ın vermiş olduğu URL_3DS adresine müşteriyi yönlendirir.

4. Adım:

PayPole 3D doğrulama işlemlerini sonuçlandırır, ödemenin sonucunu üye işyerinin 1. adımda bildirmiş olduğu BACK_URL adresine FORM POST metodu ile bildirir.

<html xmlns=\"http://www.w3.org/1999/xhtml\" >
    <head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=iso-8859-9\" /></head>
    <body onload='document.forms[0].submit()'>
        <form action='" + payment.DEALER_RESPONSE_URL + "' method='post'>
            <input type='hidden' name='DATE' value='{0}'>
            <input type='hidden' name='HASH' value='{0}'>
            <input type='hidden' name='ORDER_REF_NUMBER' value='{0}'>
            <input type='hidden' name='REFNO' value='{0}'>
            <input type='hidden' name='RETURN_CODE' value='{0}'>
            <input type='hidden' name='RETURN_MESSAGE' value='{0}'>
            <input type='hidden' name='RETURN_MESSAGE_TR' value='{0}'>
            <input type='hidden' name='STATUS' value='{0}'>
            <input type='hidden' name='ERROR_CODE' value='{0}'>
            <input type='hidden' name='CUSTOMER_NAME' value='{0}'>
            <input type='hidden' name='CUSTOMER_MAIL' value='{0}'>
            <input type='hidden' name='CUSTOMER_PHONE' value='{0}'>
            <input type='hidden' name='CUSTOMER_ADDRESS' value='{0}'>
            <input type='hidden' name='CUSTOMER_CC_NUMBER' value='{0}'>
            <input type='hidden' name='CUSTOMER_CC_NAME' value='{0}'>
            <input type='hidden' name='COMMISSION' value='{0}'>
            <input type='hidden' name='COMMISSION_RATE' value='{0}'>
            <input type='hidden' name='AMOUNT' value='{0}'>
            <input type='hidden' name='INSTALLMENT' value='{0}'>
            <input type='hidden' name='BANK_AUTH_CODE' value='{0}'>
    </form>
    </body>
</html>

Üye işyerine gönderilen FORM POST mesajında STATUS parametresinin değeri SUCCESS ve RETURN_CODE parametresinin değeri 0 olarak dönmesi 3D Ödeme işleminin sorunsuz bir şekilde gerçekleştiğini ifade etmektedir.

  • Ödeme durumundan emin olmak için PROCCESS_QUERY methodu ile sorgulama yapmanız ve PROCCESS_QUERY methodunun cevabını dikkate almanız gerekmektedir.

  • Bu sorguyu client-side tarafında değil server to server olacak şekilde kurgulamanız gerekmektedir müşteri tarayıcısında yaptığınız bu PROCCESS_QUERY methodunun görünmemesi ve takip edilememesi gerekmektedir.

Last updated