Satış - 3D Pay / NS

ST_TP_Islem_Odeme nesnesinden alacağınız Sonuc parametresi “0” dan büyükse, 3D Güvenli Ödeme işlemini başlatmak için UCD_URL parametresine yönlendirme yapınız. Kredi kartı ile ödeme işleminin başarılı veya başarısız olma durumunda Hata_URL veya Basarili_URL değerlerine POST sağlanır.

Metot Adı: Pos_Odeme

Bu metot, Nonsecure / 3D ödeme işleminin başlatılacağı metottur. (SanalPOS_ID parametresi kaldırılmıştır.) İşlem sonucu dönen 3D URL sine yönlendirme yapılır ve kredi kartı ile ödeme işlemi başlar.

Ödeme işleminden önce; “Islem_Hash” değerinin hesaplanması için https://dev.param.com.tr/tr/api adresinde bulunan, API sekmesi altında yer alan; SHA2B64 metodu çalıştırılmalıdır.

İş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 & 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.

Parametre Zorunlu Tip Uzunluk Açıklama
G * Nesne - ST_WS_Guvenlik Nesnesi
GUID * String 36 Üye İşyerine ait Anahtar
KK_Sahibi * String 100 Kredi Kartı Sahibi
KK_No * String 16 Kredi Kartı numarası
KK_SK_Ay * String 2 2 hane Son Kullanma Ay
KK_SK_Yil * String 4 4 haneli Son Kullanma Yıl
KK_CVC Evet String 3 CVC Kodu
KK_Sahibi_GSM * String 10 Kredi Kartı Sahibi GSM No, Başında 0 olmadan (5xxxxxxxxx)
Hata_URL * String 256 Ödeme işlemi başarısız olursa yönlenecek sayfa adresi
Basarili_URL * String 256 Ödeme işlemi başarılı olursa yönlenecek sayfa adresi
Siparis_ID * 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 * String 250 Siparişe ait açıklama
Taksit * Integer 2 Seçilen Taksit Sayısı. Tek çekim için 1 gönderiniz.
Islem_Tutar * String - Sipariş Tutarı, (sadece virgüllü kuruş formatında 1000,50)
Toplam_Tutar * String - Komisyon Dahil Sipariş Tutarı, (sadece virgüllü kuruş formatında 1000,50)
Islem_Hash * String - İşlem Hash Değeri
Islem_Guvenlik_Tip * String 2 NS (NonSecure) veya 3D gönderilir.
Islem_ID * String - İşleme ait Sipariş ID haricinde tekil ID opsiyoneldir.
IPAdr * String 50 IP Adresi
Ref_URL * String 256 Ödemenin gerçekleştiği sayfanın URLsi
Data1 * String 256 Extra Alan 1
Data2 * String 256 Extra Alan 2
Data3 * String 256 Extra Alan 3
Data4 * String 256 Extra Alan 4
Data5 * String 256 Extra Alan 5
Data6 * String 256 Extra Alan 6
Data7 * String 256 Extra Alan 7
Data8 * String 256 Extra Alan 8
Data9 Hayır String 256 Extra Alan 9
Data10 * String 256 Extra Alan 10

G Nesnesi:

Parametre Zorunlu Tip Uzunluk Açıklama
CLIENT_CODE * Integer 5 Terminal ID, tarafımızdan iletilecektir.
CLIENT_USERNAME * String max 16 Kullanıcı adı, tarafımızdan iletilecektir.
CLIENT_PASSWORD * String max 11 Şifre, tarafımızdan iletilecektir.
Parametre Tip Uzunluk Açıklama
Sonuc Integer - İşlem sonucu
Sonuc_Str String - İşlem sonuç açıklama
Islem_ID Long - SID Değeri
UCD_URL String - 3D URL si
Banka_Sonuc_Kod Integer - Bankadan gönderilen 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>
<Pos_Odeme 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>Albert Einstein</KK_Sahibi>
<KK_No>4022774022774026</KK_No>
<KK_SK_Ay>12</KK_SK_Ay>
<KK_SK_Yil>26</KK_SK_Yil>
<KK_CVC>000</KK_CVC>
<KK_Sahibi_GSM>5350179608 </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>sipariş5</Siparis_ID>
<Siparis_Aciklama></Siparis_Aciklama>
<Taksit>1</Taksit>
<Islem_Tutar>100,00</Islem_Tutar>
<Toplam_Tutar>100,00</Toplam_Tutar>
<Islem_Hash>ZNEMSkVXLbQu3NxXMHyG3SYZa5o=</Islem_Hash>
<Islem_Guvenlik_Tip>NS</Islem_Guvenlik_Tip>
<Islem_ID></Islem_ID>
<IPAdr>127.0.0.1</IPAdr>
<Ref_URL></Ref_URL>
<Data1></Data1>
<Data2></Data2>
<Data3></Data3>
<Data4></Data4>
<Data5></Data5>
<Data6></Data6>
<Data7></Data7>
<Data8></Data8>
<Data9></Data9>
<Data10></Data10>
</Pos_Odeme>
</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>
<Pos_OdemeResponse xmlns="https://turkpos.com.tr/">
<Pos_OdemeResult>
<Islem_ID>3000200992</Islem_ID>
<UCD_URL>NONSECURE</UCD_URL>
<Sonuc>1</Sonuc>
<Sonuc_Str>İşlem Başarılı</Sonuc_Str>
<Banka_Sonuc_Kod>0</Banka_Sonuc_Kod>
</Pos_OdemeResult>
</Pos_OdemeResponse>
</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>
<Pos_OdemeResponse xmlns="https://turkpos.com.tr/">
<Pos_OdemeResult>
<Islem_ID>6004507971</Islem_ID>
<UCD_URL>https://test-pos.param.com.tr:4443/3D_Secure/AkilliKart_3DPay_EST.aspx?rURL=TURKPOS_3D_TRAN&SID=6004507971</UCD_URL>
<Sonuc>1</Sonuc>
<Sonuc_Str>İşlem Başarılı</Sonuc_Str>
<Banka_Sonuc_Kod>0</Banka_Sonuc_Kod>
</Pos_OdemeResult>
</Pos_OdemeResponse>
</soap:Body>
</soap:Envelope>

POST Parametreleri:

Parametre Açıklama
TURKPOS_RETVAL_Sonuc Sonuç değeri
TURKPOS_RETVAL_Sonuc_Str Sonuç açıklaması
TURKPOS_RETVAL_GUID Üye İşyeri ait anahtarı
TURKPOS_RETVAL_Islem_Tarih İşlem Tarihi
TURKPOS_RETVAL_Dekont_ID Dekont Numarası
TURKPOS_RETVAL_Tahsilat_Tutari Müşteriden tahsil edilen tutar
TURKPOS_RETVAL_Odeme_Tutari Net tutar. Tahsilat tutarından komisyon tutarının çıkarılmış halidir.
TURKPOS_RETVAL_Siparis_ID Servise gönderdiğiniz işleme ait tekil Siparis_ID
TURKPOS_RETVAL_Islem_ID Servise gönderdiğiniz Islem_ID
TURKPOS_RETVAL_Ext_Data Metottaki Data1, Data2, Data3, Data4, Data5 parametrelerinin “|” ile birleştirilmiş hali döner. Ext_Data = Data1 & "|" & Data2 & "|" & Data3 & "|" & Data4 & "|" & Data5
TURKPOS_RETVAL_Banka_Sonuc_Kod Kod banka hatasını dönmektedir.
TURKPOS_RETVAL_Hash Dönen cevaba ait 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
CLIENT_CODE + Üye İşyerine ait Anahtar + TURKPOS_RETVAL_Dekont_ID + Tutar + Siparis_ID + Servise Gönderilen Islem_ID değeri

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.

TURKPOS_RETVAL_Sonuc < 0 ise TURKPOS_RETVAL_Dekont_ID “0” döner. TURKPOS_RETVAL_Dekont_ID değeri “0” dan büyük olduğu durumlarda kredi kartından çekim işlemi tamamlanmış anlamına gelir.

Sonuc > 0 ise UCD_URL 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_URL='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 UCD_URL <> 'NONSECURE' ise 3D işlemi gibi ele alınır.