Ön Provizyon

  • Ön Provizyon - 3D Model / NS
  • Ön Provizyon Kapama
  • Ön Provizyon İptal
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.

Kontrol Senaryoları
Entegrasyon sırasında yapılmasını beklediğimiz test senaryolarına buradan ulaşabilirsiniz.

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.


TP_Islem_Odeme_OnProv_WMD Hash Formülü

                        
                    Dim Islem_Guvenlik_Str$ = CLIENT_CODE & GUID & Islem_Tutar & Toplam_Tutar & Siparis_ID & Hata_URL & Basarili_URL 
                    Dim Islem_Hash$ = SHA2B64(Islem_Guvenlik_Str)
                
            
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 ( anahtar Lower küçük olarak gidilmeli)

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.

Entegrasyon sırasında yapılmasını beklediğimiz test senaryolarına buradan ulaşabilirsiniz.

Metot Adı: TP_Islem_Odeme_OnProv_Kapa

Ön provizyon işlemini satışa dönüştürür.

Parametre Zorunlu Tip Uzunluk Açıklama
G Evet Nesne - ST_WS_Guvenlik Nesnesi
GUID Evet String 36 Üye İşyerine ait Anahtar
Prov_ID Hayır String - Provizyon ID (Opsiyonel, boş geçilebilir)
Prov_Tutar Evet String - Kapama Yapılacak Tutar (sadece virgüllü kuruş formatında 1000,50)
Siparis_ID Evet String - Sipariş ID Değeri
Parametre Tip Uzunluk Açıklama
Sonuc Integer - İşlem sonucu
Sonuc_Str String - İşlem sonuç açıklama
Prov_ID String - Provizyon ID si
Dekont_ID Long - İşlemin Dekont ID si
Banka_Sonuc_Kod Integer - Bankanın döndüğü kod
<?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_Kapa 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>
<Prov_ID>f7184b1f-c4c2-4d2e-8428-fc6014a00900</Prov_ID>
<Prov_Tutar>10,00</Prov_Tutar>
<Siparis_ID></Siparis_ID>
</TP_Islem_Odeme_OnProv_Kapa>
</soap:Body>
</soap:Envelope>
<?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_KapaResponse xmlns="https://turkpos.com.tr/">
<TP_Islem_Odeme_OnProv_KapaResult>
<Sonuc>1</Sonuc>
<Sonuc_Str>Provizyon Kapama İşlem Başarılı</Sonuc_Str>
<Prov_ID>f7184b1f-c4c2-4d2e-8428-fc6014a00900</Prov_ID>
<Dekont_ID>6004466311</Dekont_ID>
<Banka_Sonuc_Kod>0</Banka_Sonuc_Kod>
</TP_Islem_Odeme_OnProv_KapaResult>
</TP_Islem_Odeme_OnProv_KapaResponse>
</soap:Body>
</soap:Envelope>
Metot Adı: TP_Islem_Iptal_OnProv

Bu metot, satış işlemi yapılmamış Provizyon iptali için kullanılır.

Parametre Zorunlu Tip Uzunluk Açıklama
G Evet Nesne - ST_WS_Guvenlik Nesnesi
GUID Evet String 36 Üye İşyerine ait Anahtar
Prov_ID Hayır String - Provizyon ID (Opsiyonel, boş geçilebilir)
Siparis_ID Evet String - Sipariş ID Değeri
Parametre Tip Uzunluk Açıklama
Sonuc Integer - İşlem sonucu
Sonuc_Str String - İşlem sonuç açıklama
Banka_Sonuc_Kod Integer - Bankadan dönen kod
<?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_Iptal_OnProv 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>
<Prov_ID>dfbf4673-83d8-436a-a922-ae8ae7e66bb8</Prov_ID>
<Siparis_ID></Siparis_ID>
</TP_Islem_Iptal_OnProv>
</soap:Body>
</soap:Envelope>
<?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_Iptal_OnProvResponse xmlns="https://turkpos.com.tr/">
<TP_Islem_Iptal_OnProvResult>
<Sonuc>1</Sonuc>
<Sonuc_Str>Approved</Sonuc_Str>
<Banka_Sonuc_Kod>00</Banka_Sonuc_Kod>
</TP_Islem_Iptal_OnProvResult>
</TP_Islem_Iptal_OnProvResponse>
</soap:Body>
</soap:Envelope>