Ön Provizyon - 3D Model / NS

Metot Adı: TP_Islem_Odeme_OnProv_WMD

Nonsecure/3D ödeme işleminin başlatılacağı metottur. 3D işlemler için metot sonucu dönen 3D Banka HTML kod içeriği ekrana bastırılır ve yönlendirme yapılmış olur. Kredi kartı doğrulama işlemi başlar.

İşlem Hash Değeri Hesaplama:
Bu servisin SHA2B64 metodu, parametresine gönderdiğiniz değer sonucunda, bu değeri hashleyip Base64String e çevirir. Aşağıdaki örnekte olduğu gibi, bu parametreleri yazılım dilinize uygun string birleştirme yöntemi kullanarak birleştiriniz ve SHA2B64 metoduna gönderiniz. Elde ettiğiniz sonuç Islem_Hash değeridir. Islem_Hash’i oluşturacak parametre formatlarını, Gönderilecek Parametreler tablosuna bakarak oluşturunuz. (Islem_Tutar’ın virgüllü olması gibi)


Dim Islem_Guvenlik_Str$ = CLIENT_CODE & GUID &
Islem_Tutar & Toplam_Tutar & Siparis_ID & Hata_URL & Basarili_URL
Dim Islem_Hash$ = SHA2B64(Islem_Guvenlik_Str)

Komisyon Dahil Sipariş Tutarı Hesaplama
Komisyon Oran: TP_Ozel_Oran_SK_Liste metodundan seçilen taksitin komisyon oranı
Islem_Tutar: Siparişinizin tutarı
Toplam_Tutar = Islem_Tutar + ((Islem_Tutar x Komisyon Oran) / 100)
şeklindedir.

Sonuc parametresi “0” dan büyükse, 3D Güvenli Ödeme işlemini başlatmak için UCD_HTML içeriğini ekrana bastırınız. Kredi kartından çekim işlemini tamamlamak için aşağıdaki adımlarını izlemeniz gerekmektedir.

NonSecure işlemler için (Önemli)
Sonuc > 0 ise UCD_HTML nin 'NONSECURE' eşitliği aranır. Eğer eşitse İşlem sonlanır. Islem_ID değeri Dekont No değeridir.
Başarılı bir NonSecure işlemi için, Sonuc > 0, Islem_ID > 0 ve UCD_HTML='NONSECURE' olmalıdır. Aksi durumda işlem başarısızdır.
NONSECURE işlemin hatalı olması durumunda Sonuc_Str değer bankadan gelen hata mesajını döner.
Eğer Sonuc > 0 ve UCD_HTML <> 'NONSECURE' ise 3D işlemi gibi ele alınır.

Parametre Zorunlu Tip Uzunluk Açıklama
G Evet Nesne - ST_WS_Guvenlik Nesnesi
GUID Evet String 36 Üye İşyerine ait Anahtar
KK_Sahibi Evet String 100 Kredi Kartı Sahibi
KK_No Evet String 16 Kredi Kartı numarası
KK_SK_Ay Evet String 2 2 hane Son Kullanma Ay
KK_SK_Yil Evet String 4 4 haneli Son Kullanma Yıl
KK_CVC Evet String 3 CVC Kodu
KK_Sahibi_GSM Evet String 10 Kredi Kartı Sahibi GSM No, Başında 0 olmadan (5xxxxxxxxx)
Hata_URL Evet String 256 Ödeme işlemi başarısız olursa yönlenecek sayfa adresi
Basarili_URL Evet String 256 Ödeme işlemi başarılı olursa yönlenecek sayfa adresi
Siparis_ID Evet String 50 Siparişe özel tekil ID. Bu değeri daha önce gönderdiyseniz sistem yeni Siparis_ID atar. İşlem sonucunda bu Siparis_ID yi döner.
Siparis_Aciklama Hayır String 250 Siparişe ait açıklama
Taksit Evet Integer 2 Seçilen Taksit Sayısı. Tek çekim için 1 gönderiniz.
Islem_Tutar Evet String - Sipariş Tutarı, (sadece virgüllü kuruş formatında 1000,50)
Toplam_Tutar Evet String - Komisyon Dahil Sipariş Tutarı, (sadece virgüllü kuruş formatında 1000,50)
Islem_Hash Evet String - İşlem Hash Değeri
Islem_Guvenlik_Tip Evet String - NS (NonSecure) veya 3D
Islem_ID Hayır String - İşleme ait Sipariş ID haricinde tekil ID opsiyoneldir.
IPAdr Evet String 50 IP Adresi
Ref_URL Hayır String 256 Ödemenin gerçekleştiği sayfanın URLsi
Data1 Hayır String 250 Extra Alan 1
Data2 Hayır String 250 Extra Alan 2
Data3 Hayır String 250 Extra Alan 3
Data4 Hayır String 250 Extra Alan 4
Data5 Hayır String 250 Extra Alan 5
Parametre Tip Uzunluk Açıklama
Islem_ID Long - SID Değeri
Islem_GUID String 36 İşlem GUID değeri
UCD_HTML String - 3D HTML kod
UCD_MD String - 3D MD değeri
Sonuc Integer - İşlem sonucu
Sonuc_Str String - İşlem sonucu açıklama
Bank_Trans_ID String - Banka Transaction ID değeri
Bank_AuthCode String - Banka Auth Code değeri
Bank_HostMsg String - Banka HostMsg değeri
Banka_Sonuc_Kod Integer - Bankanın döndüğü kod
Bank_Extra String - Banka Extra değeri
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
        <TP_Islem_Odeme_OnProv_WMD xmlns="https://turkpos.com.tr/"> 
                <G> 
                        <CLIENT_CODE>10738</CLIENT_CODE>
                        <CLIENT_USERNAME>Test</CLIENT_USERNAME>
                        <CLIENT_PASSWORD>Test</CLIENT_PASSWORD>
                </G>
                <GUID>0c13d406-873b-403b-9c09-a5766840d98c</GUID>
                <KK_Sahibi>test</KK_Sahibi>
                <KK_No>4022774022774026</KK_No>
                <KK_SK_Ay>12</KK_SK_Ay>
                <KK_SK_Yil>2026</KK_SK_Yil>
                <KK_CVC>000</KK_CVC>
                <KK_Sahibi_GSM>5551231212</KK_Sahibi_GSM>
                <Hata_URL>https://dev.param.com.tr/tr</Hata_URL>
                <Basarili_URL>https://dev.param.com.tr/tr</Basarili_URL>
                <Siparis_ID>1</Siparis_ID>
                <Siparis_Aciklama>a</Siparis_Aciklama>
                <Taksit>1</Taksit>
                <Islem_Tutar>100,00</Islem_Tutar>
                <Toplam_Tutar>100,00</Toplam_Tutar>
                <Islem_Hash>0Vc96sxIwbQQUb9HT9dnch1mmVw=</Islem_Hash>
                <Islem_Guvenlik_Tip>NS</Islem_Guvenlik_Tip>
                <Islem_ID>123</Islem_ID>
                <IPAdr>127.0.0.1</IPAdr>
                <Ref_URL>https://dev.param.com.tr/tr</Ref_URL>
                <Data1>a</Data1>
                <Data2>a</Data2>
                <Data3>a</Data3>
                <Data4>a</Data4>
                <Data5>a</Data5>
        </TP_Islem_Odeme_OnProv_WMD> 
    </soap:Body>
</soap:Envelope> 

Sonuç Parametreleri Örnek: NS li işlemler için

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <TP_Islem_Odeme_OnProv_WMDResponse xmlns="https://turkpos.com.tr/">
            <TP_Islem_Odeme_OnProv_WMDResult>
                <Islem_ID>6005034747</Islem_ID>
                <Islem_GUID>72c9b68c-fedc-488e-9166-ae9fc7d4e523</Islem_GUID>
                <UCD_HTML>NONSECURE</UCD_HTML>
                <Sonuc>1</Sonuc>
                <Sonuc_Str>Ön Provizyon İşlemi Başarılı</Sonuc_Str>
                <Bank_Trans_ID>21292RsEI18157</Bank_Trans_ID>
                <Bank_AuthCode>P66791</Bank_AuthCode>
                <Bank_HostMsg />
                <Banka_Sonuc_Kod>0</Banka_Sonuc_Kod>
                <Bank_Extra>&lt;Extra&gt;
    &lt;SETTLEID&gt;2070&lt;/SETTLEID&gt;
    &lt;TRXDATE&gt;20211019 17:44:04&lt;/TRXDATE&gt;
    &lt;ERRORCODE&gt;&lt;/ERRORCODE&gt;
    &lt;TERMINALID&gt;00556600&lt;/TERMINALID&gt;
    &lt;MERCHANTID&gt;655000100&lt;/MERCHANTID&gt;
    &lt;CARDBRAND&gt;VISA&lt;/CARDBRAND&gt;
    &lt;CARDISSUER&gt;FINANSBANK A.S.&lt;/CARDISSUER&gt;
    &lt;AVSAPPROVE&gt;Y&lt;/AVSAPPROVE&gt;
    &lt;HOSTDATE&gt;1019-174405&lt;/HOSTDATE&gt;
    &lt;AVSERRORCODEDETAIL&gt;avshatali-avshatali-avshatali-avshatali-&lt;/AVSERRORCODEDETAIL&gt;
    &lt;NUMCODE&gt;00&lt;/NUMCODE&gt;
  &lt;/Extra&gt;</Bank_Extra>
                <Siparis_ID>1</Siparis_ID>
                <Ext_Data>a|a|a|a|a</Ext_Data>
            </TP_Islem_Odeme_OnProv_WMDResult>
        </TP_Islem_Odeme_OnProv_WMDResponse>
    </soap:Body>
</soap:Envelope>

Sonuç Parametreleri Örnek: 3D li işlemler için

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <TP_Islem_Odeme_OnProv_WMDResponse xmlns="https://turkpos.com.tr/">
            <TP_Islem_Odeme_OnProv_WMDResult>
                <Islem_ID>6005034750</Islem_ID>
                <Islem_GUID>4554a625-adbc-4e5e-98d7-412b16a1c7c9</Islem_GUID>
                <UCD_HTML>HTML İçerik</UCD_HTML>
                <UCD_MD>402277:56E65101CC290830C0C9396B282026E7A253A701B0424F50BED24CD4D9448E6C:3634:##700655000100</UCD_MD>
                <Sonuc>1</Sonuc>
                <Sonuc_Str>İşlem Başarılı</Sonuc_Str>
                <Banka_Sonuc_Kod>0</Banka_Sonuc_Kod>
                <Siparis_ID>1</Siparis_ID>
            </TP_Islem_Odeme_OnProv_WMDResult>
        </TP_Islem_Odeme_OnProv_WMDResponse>
    </soap:Body>
</soap:Envelope>

UCD_HTML içeriğini ekrana bastırdığınızda Banka 3D ekranı görüntülenecektir. 3D doğrulama yapıldıktan sonra Basarili_URL veya Hata_URL sayfalarınıza aşağıdaki parametreler post edilecektir.

Parametre Tip Uzunluk Açıklama
md String - TP_WMD_Pay metodu UCD_MD parametresine gönderilecek MD değeri
mdStatus Integer 1 3D Doğrulama Sonucudur. 1:Başarılı - Diğer durumlarda 3D doğrulama başarısızdır.
orderId String - TP_Islem_Odeme_OnProv_WMD metoduna gönderilen Siparis_ID değeri
transactionAmount String - TP_Islem_Odeme_OnProv_WMD metoduna gönderilen İşlem Tutarı
islemGUID String 36 TP_Islem_Odeme_OnProv_WMD metodundan dönen İşlem GUID değeri
islemHash String - TP_Islem_Odeme_OnProv_WMD metodundan dönen İşlem Hash değeri

Hash Kontrolü
Parametre doğrulaması yapmak için aşağıdaki işlemler uygulanmalıdır.

Hash değerini oluşturan parametreler
islemGUID + md + mdStatus + orderId + Üye İşyerine ait Anahtar

Hash değeri based64 olarak kodlanmıştır. (SHA1)

Örnek kod
Dim _sha As SHA1 = New SHA1CryptoServiceProvider()
Dim _bytes() As Byte = System.Text.Encoding.UTF8.GetBytes(islemGUID + md + mdStatus + orderId + Üye İşyerine ait Anahtar)
Dim _hashingbytes() As Byte = _sha.ComputeHash(_bytes)
Dim _hash As String = Convert.ToBase64String(_hashingbytes)

Oluşturduğunuz hash değeri ile post edilen islemHash değeri aynı olmalıdır.

mdStatus Değerleri

1 = Doğrulanmış İşlem (Full 3D)
2, 3, 4 = kart kayıtlı değil (Half 3D)
5, 6, 7, 8 = Geçerli doğrulama yok veya sistem hatası
0 = Doğrulama Başarısız

mdStatus : 1, 2, 3, 4 ise Ödemeyi tamamlamak için TP_WMD_Pay metoduna istek gönderebilirsiniz.
mdStatus : 0,5,6,7,8 ise 3D doğrulama başarısızdır. TP_WMD_Pay metoduna istek göndermeyiniz..

 

Ön Provizyon İşlemini tamamlama (3D İşlemleri için)
Metot Adı: TP_WMD_Pay

Doğrulaması yapılan kartlardan ön provizyonu tamamlamak için bu metot kullanılır.

Gönderilecek Parametreler:

Parametre Zorunlu Tip Uzunluk Açıklama
G Evet Nesne - ST_WS_Guvenlik Nesnesi
GUID Evet String 36 Üye İşyerine ait Anahtar
UCD_MD Evet String - Banka 3D MD değeri
Islem_GUID Evet String 36 İşlem GUID değeri
Siparis_ID Evet String - Sipariş ID değeri

Sonuç Parametreler:

Parametre Tip Uzunluk Açıklama
Sonuc Integer - İşlem sonucu
Sonuc_Ack String 36 İşlem sonuç açıklama
Dekont_ID String 36 İşlemin Dekont ID si
Siparis_ID String - Sipariş ID değeri
UCD_MD String - Banka 3D MD Değeri
Bank_Trans_ID String - Banka Transaction ID değeri
Bank_AuthCode String - Banka Auth Code değeri
Bank_HostMsg String - Banka HostMsg değeri
Bank_Extra String - Banka Extra değeri
Bank_Sonuc_Kod Integer - Banka Sonuç Kod değeri
Bank_HostRefNum String - Banka RRN değeri

Sonuc > 0 ve Dekont_ID > 0 ise işlem başarılıdır. Aksi halde işlem başarısızdır.

Ön provizyon - Kapama metoduna geçebilirsiniz.