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.
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 |
Sonuç Parametreleri Örnek: NS li işlemler için
Sonuç Parametreleri Örnek: 3D li işlemler için
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.