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' değilse 3D işlemi gibi ele alınır.
Firma MCC (Çalışma alanı) “5960 DOGRUDAN SATIS-SIGORTA”, “6300 SIGORTA SATICILARI”, “6363 EMEKLİLİK VE HAYAT” değerlerinden biri olması durumunda NS işlemi maskeli şekilde işlemi yapabilir.
Aşağıdaki şekilde bilgileri iletmesi gerekmetedir.
KK_No : ilk 6 hane ****** son 4 hane
KK_SK_Ay : **
KK_SK_Yil : ****
Data1 : TCKN/VKN/YKN
Dim Islem_Guvenlik_Str$ = CLIENT_CODE & GUID & Taksit & Islem_Tutar & Toplam_Tutar & Siparis_ID
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 | Hayır | 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 |
Sonuç Parametreleri Örnek: NS li işlemler için
Sonuç Parametreleri Örnek: 3D li işlemler için
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 iş 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..
Doğrulaması yapılan kartlardan tutar çekimi yapmak için bu metot kullanılır.
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 |
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.
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.
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.
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.
Firma MCC (Çalışma alanı) “5960 DOGRUDAN SATIS-SIGORTA”, “6300 SIGORTA SATICILARI”, “6363 EMEKLİLİK VE HAYAT” değerlerinden biri olması durumunda NS işlemi maskeli şekilde işlemi yapabilir.
Aşağıdaki şekilde bilgileri iletmesi gerekmetedir.
KK_No : ilk 6 hane ****** son 4 hane
KK_SK_Ay : **
KK_SK_Yil : ****
Data1 : TCKN/VKN/YKN
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)
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 | Hayır | 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 | 2 | NS (NonSecure) veya 3D gönderilir. |
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 | 256 | Extra Alan 1 |
Data2 | Hayır | String | 256 | Extra Alan 2 |
Data3 | Hayır | String | 256 | Extra Alan 3 |
Data4 | Hayır | String | 256 | Extra Alan 4 |
Data5 | Hayır | String | 256 | Extra Alan 5 |
Data6 | Hayır | String | 256 | Extra Alan 6 |
Data7 | Hayır | String | 256 | Extra Alan 7 |
Data8 | Hayır | String | 256 | Extra Alan 8 |
Data9 | Hayır | String | 256 | Extra Alan 9 |
Data10 | Hayır | 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(CLIENT_CODE + Üye İşyerine ait Anahtar
+
TURKPOS_RETVAL_Dekont_ID + Tutar + Siparis_ID + Servise Gönderilen Islem_ID değeri)
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.