Satış - 3D Model / NS

Metot Adı: TP_WMD_UCD

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 & Taksit & 
Islem_Tutar & Toplam_Tutar & Siparis_ID
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 - İş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_WMD_UCD 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>ZELmKOTnCjyV8cRoAtR+jk4h4U8=</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_WMD_UCD>
</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_WMD_UCDResponse xmlns="https://turkpos.com.tr/">
<TP_WMD_UCDResult>
<Islem_ID>3000201188</Islem_ID>
<UCD_HTML>NONSECURE</UCD_HTML>
<Sonuc>1</Sonuc>
<Sonuc_Str>İşlem Başarılı </Sonuc_Str>
<Bank_Trans_ID>21047QAhH14740</Bank_Trans_ID>
<Bank_AuthCode>P20189</Bank_AuthCode>
<Bank_HostMsg />
<Banka_Sonuc_Kod>0</Banka_Sonuc_Kod>
<Bank_Extra> <Extra> <SETTLEID>1842</SETTLEID> <TRXDATE>20210216 16:00:33</TRXDATE> <ERRORCODE></ERRORCODE> <TERMINALID>00556600</TERMINALID> <MERCHANTID>00655000100</MERCHANTID> <CARDBRAND>VISA</CARDBRAND> <CARDISSUER>FINANSBANK A.S.</CARDISSUER> <AVSAPPROVE>Y</AVSAPPROVE> <HOSTDATE>0216-160034</HOSTDATE> <AVSERRORCODEDETAIL>avshatali-avshatali-avshatali-avshatali-</AVSERRORCODEDETAIL> <NUMCODE>00</NUMCODE> </Extra> </Bank_Extra>
<Siparis_ID>1</Siparis_ID>
</TP_WMD_UCDResult>
</TP_WMD_UCDResponse>
</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_WMD_UCDResponse xmlns="https://turkpos.com.tr/">
<TP_WMD_UCDResult>
<Islem_ID>1030796415</Islem_ID>
<Islem_GUID>fcaf4388-d744-4976-b392-183ee12180fb</Islem_GUID>
<UCD_HTML>HTML içerik</UCD_HTML>
<UCD_MD>eyJ2ZXJzaW9uIjoiMC4wMyIsImV4cGlyeSI6IjI2MTIiLCJnb1N0YW1wIjoiZXlKa
GJHY2lPaUpJVXpVeE1pSjkuZXlKemRXSWlPaUl3TURBd01EQTJOalF3TVRNME1EWWlMQ
0owYVcxbGIzVjBVMlZqYjI1a2N5STZORE15TURBd01EQXNJbkp2YkdWeklqb2lJaXdpWlhod
0lqb3hOalUyTmpZMk16ZzBmUS54aUdjMDNYNHdaMDJWMkE0cWl4TE8xZzRYUGNxTGhS
ZGJxNGdueW1RVEdRUVZHOXE5SHc5YWpmZF9PSThUVXY4M2pQQW9wNm5lZl82aTN
XTVlqOS1HQSIsInRpbWUiOiIyMDIxMDIxNjEyMDYyNCIsIm1hYyI6ImNYc1R2YWRVcjFyT
WJSRGJHQnJuWjdPdkVKTkJYVmJiYzJqN1lLUjhocmZTdk1lTjZYVlVIMWdFT1Rrc3IrS2V
LWHFYc0dYR3pmcHBzTUlJM3F0dTdjY1RLSmw0RWRFbXQydGxHS2NEYnRIZ2dBdGl
6TzdvZm82RE9zYnBpL1JhVXpQektmV2wwOUUwMHIvOFZvWkZNaHYyZWtiU3VzSj
hxUVJJQk9SSFBCSy9BT1pZT2NoSlhGaXRHQUNPaFFoajNTSkR2bk15cFEra1Q1YmpnRlZsY1p
BblZsM0RyRmpCSHplQXQxWjU2UWJWUUlFUjJmdElSV1REc2VrM2FLSnhZRjcrelFyVk91ZFkwb
3k5VnRwcmtpc0JlbmlXQ3VHazdkTzFwdVdzdFQydDZJWStrR003aWM4SWlZOTlCWDRiM2Vn
UG5DZDQvcmtEakpCZlJIZ2g2UVx1MDAzZFx1MDAzZCIsImlkIjoiMDA2NGViMzhlMmQ5LTg3
OTktNGIzZS05MWQ4LWQ2OTBhYTY4NTQyYiJ9
</UCD_MD>
<Sonuc>1</Sonuc>
<Sonuc_Str>İşlem Başarılı</Sonuc_Str>
<Banka_Sonuc_Kod>0</Banka_Sonuc_Kod>
<Siparis_ID>sipariş1</Siparis_ID>
</TP_WMD_UCDResult>
</TP_WMD_UCDResponse>
</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_WMD_UCD metoduna gönderilen Siparis_ID değeri
transactionAmount String - TP_WMD_UCD metoduna gönderilen İşlem Tutarı
islemGUID String - TP_WMD_UCD metodundan dönen İşlem GUID değeri
islemHash String - TP_WMD_UCD 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..

 

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

Doğrulaması yapılan kartlardan tutar çekimi yapmak 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.