You are on page 1of 15

Sanal Pos(FreePos) Kurulum Rehberi

Kuveyt Türk Sanal Pos(Freepos) Hakkında


E-ticaret sitelerinde yapılan alışverişlerin gerçekleşmesinde kullanılan POS sistemidir. VPOS (Virtual POS) olarak da
isimlendirilen bu sistem kredi kartı vasıtasıyla internet üzerinden alışveriş yapma imkânı sağlar.

Siteniz vasıtasıyla alışveriş yapan müşteriniz; kredi kartı bilgilerinin sitedeki ödeme ekranlarına girer, bu bilgiler ilgili
bankaya ulaşır ve işlemin provizyonu(Onay) alınır. Provizyonu alınmış işlemlerin tutarı ilgili müşterinin kredi kartı limitinden
düşerek çalıştığınız banka hesabına geçirilir. Web site üzerinden çalışan on-line bir Post’tur.

1. Güvenli Ödeme Nedir?

Troy, Visa ve MasterCard’ın dahil olduğu internet üzerinden gerçekleştirilen ödeme işlemlerinde daha
güvenilir bir ortam sağlayan sistemdir.
3D Secure ve Go sistemleri kullanıcı, üye işyeri ve banka arasındaki sorumlulukları da düzenlemektedir.
3D Secure sistemi uygulanan ödeme işlemlerinde kullanıcıdan kart bilgileri alındıktan sonra,
kullanıcı bankanın 3D Secure veya Go ödeme sayfasına yönlendirilmektedir. Burada kullanıcı banka tarafından
kendisine gönderilen kısa mesajda yer alan şifreyi girer, böylece kart doğrulanmış ve yapılan işlem
kullanıcı tarafından imzalanmış olmaktadır.
Kuveyt Türk Katılım Bankası tarafından sunulan Sanal Pos servisi 3D Secure ve Go ödeme işlemlerini
desteklemektedir .

2. Güvenli Ödeme Nasıl Çalışır


Üye işyerlerinin 3D Secure sistemini uygulayabilecekleri birçok yöntem bulunmaktadır. 3D
Model bu yöntemlerden birisidir. Bu yöntem 3D Secure sisteminin faydaların tümünü sağlamaktadır. Bu
yöntem ayrıca; üye işyerine kart doğrulama, kart doğrulaması sonrasında işlemi tekrar kontrol edebilme
ve uygun olması durumunda provizyon işlemine onay verebilme imkanı sağlamaktadır.

3D Model uygulanmış tipik bir ödeme işlemi aşağıdaki temel adımlarla gerçekleşmektedir.

 Kullanıcının karta ait bilgileri girmesi,


  Kart sahibi banka tarafından kartın doğrulanması, kullanıcının işlemi imzalaması,
  Doğrulama sonucunun üye işyeri tarafından kontrol edilmesi,
  Ödemenin gerçekleştirilmesi.


Bu adımların uygulanmasına dair teknik bilgiler daha sonraki bölümlerde yer almaktadır.

Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
3. Zorunlu Alanlar Ve Açıklamaları

Bu bölümde üye işyeri ve Sanal Pos servisi arasında gerçekleştirilecek entegrasyon için bilgiler
yer almaktadır. Üye işyerinin 3D Model ödeme uygulayabilmesi için aşağıdaki bilgilere sahip olması
gerekmektedir.

3.1. Banka Tarafından Sağlanacak Bilgiler

 CustomerNumber(Müşeri No): Üye işyerinin Kuveyt Türk'teki Sanal Pos için kullanılabilecek
hesaba ait müşteri numarasıdır. Maille üye işyerine gönderilmektedir.

 MerchantId(Mağaza Numarası): Üye işyerinin Kuveyt Türk Sanal Pos servisinde


kayıtlı özel Mağaza numarasıdır. Maille üye işyerine gönderilmektedir.

 PostURL(Ödeme Noktası Adresi): SanalPos'un sunduğu ödeme yöntemine ait adreslerdir. Ödeme işlemine ait
bilgiler bu adrese gönderilecektir.

3.2. Entegrasyon İçin Kullanılan Diğer Bilgiler


APIVersion(Uygulama Versiyonu): Uygulama versiyonu ifade etmektedir. Sabit değer 1.0.0 gönderilecek.

OkUrl(Başarılı İşlem Adresi): Güvenli Ödeme işlemlerinde kartın doğrulanması


aşamasında, kullanıcı bir başka sayfaya yönlendirilmektedir (ACS veya TroyGo). Bu aşamada işlemler arasında
bağlantı bulunmamaktadır. Bu nedenle işlemlere ait sonuçlar üye işyerinin belirleyeceği bir
sayfaya gönderilmektedir. Başarılı doğrulama işlemine ait “kart doğrulama” sonucun gönderileceği adrestir.

FailUrl(Başarısız İşlem Adresi): Başarısız Güvenli Ödeme işlemlerinde ait sonucun gönderileceği adrestir. Bu nedenle
işlemlere ait sonuçlar üye işyerinin belirleyeceği bir sayfaya gönderilmektedir.

HashData(Doğrulama Anahtarı): Ödeme işlemine ait bilgilerin doğruluğunun kontrol edilmesi


için kullanılan veridir. Daha sonra sağlanacak algoritma ile üretilecek bu veri, Sanal Pos tarafında
da üretilecek ve bu veriler karşılaştırılacaktır. Bu kontrolden geçemeyen ödemeler
gerçekleştirilmemektedir.

CardNumber(Kart Numarası): Ödemeyi yapacak kişiye ait kartın üzerindeki 16 haneli numaradır ,16 karakter olacak ve
aralarında boşluk/veya sembol olmayacak şekilde gönderilmelidir.

CardExpireDateYear(Kart Son Kullanım Yılı): Kartın ön yüzünde bulunan son kullanma tarihinin yılıdır ,2 karakter olarak
gönderilecektir. (Örneğin; 2019 için 19)

Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
CardExpireDateMonth(Kart Son Kullanım Ayı): Kartın ön yüzünde bulunan son kullanma tarihinin ayıdır, 2 karakter olarak
gönderilecektir.( Örneğin; Ocak ayı için 01)

CardCVV2: Kartın arka yüzündeki 3 haneli güvenlik kodudur. 3 karakter olarak gönderilecektir.

CardHolderName(Kart Sahibinin Adı Soyadı) : Kartın ön yüzünde yer alan isim soyisim bilgisidir.

CardType(Kart Türü) : Troy,Visa veya MasterCard olarak gönderilmesi gerekmektedir.

BatchID(Günsonu No): Satış işleminde sabit değer 0 gönderilecek.

TransactionType(İşlem Türü) : Satış işlemi ve diğer işlemlerde sabit değer olarak “Sale” gönderilmesi gerekmektedir.

InstallmentCount(Taksit Sayısı): Taksit sayısı bu alana girilmelidir, taksit yapma yetkiniz bulunmuyorsa 0
olarak gönderilmelidir.

Amount(Tutar): İşlem tutarının girildiği alandır. Bu alanda hiçbir noktalama işareti kullanılmayacak ve gerçek tutarın 100
katı gönderilecektir. (Örneğin; 102.65 TL için 10265, 1 TL için 100 gönderilecek)

DisplayAmount(Tutar Görünümü): Tutar(Amount) değeri ile aynı olacak şekilde gönderilmelidir.

CurrencyCode(Para Kodu): Para birimidir, “0949” olarak gönderilmesi gerekmektedir. Diğer para kodları şimdilik geçerli
değildir.

MerchantOrderId(Üye İşyeri Sipariş No): İşlemin üye işyeri tarafında yer alan numarasıdır. Bu alana işyeri istediği sabit veya
değişken değer atayabilir.

TransactionSecurity (İşlem Güvenliği): İşlemin yapılacağı güvenlik türü bilgisidir. Güvenli Ödeme işlemleri için sabit değer 3
girilmelidir.

UserName(Api Kullanıcı Adı): https://kurumsal.kuveytturk.com.tr adresine login olarak kullanıcı işlemleri sayfasında
API rolünde oluşturulan kullanıcı adıdır. (Yönetim- Kullanıcı İşlemleri- Kullanıcı Ekleme)

Password(Api Şifresi): https://kurumsal.kuveytturk.com.tr adresine login olarak kullanıcı işlemleri sayfasında


oluşturulan API kullanıcısının şifre bilgisidir.

3.3.Banka Tarafında Dönen Cevap Bilgileri

OrderId(İşlem No): İşlemin Sanal Pos sisteminde kayıtlı numarasıdır. Banka Tarafında üretilmektedir.

ProvisionNumber(Provizyon Numarası): Başarılı işlemlerde kart bankasının vermiş olduğu otorizasyon numarasıdır. Kart
bankası tarafında üretilmektedir.

Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
RRN(Referans Numarası1): Pos bankası tarafında üretilen işlem referans numarasıdır.

Stan(Referans Numarası2): Pos bankası tarafında üretilen işlem referans numarasıdır.

ResponseCode(Cevap Kodu): Genel kabul görmüş kart veya pos bankası cevabıdır. Bu alan sadece numerik
gelmektedir. Başarılı işlemlerde “00” kodu verilmektedir. Her bir kod farklı bir cevabı bulunmaktadır.

ResponseMessage (Cevap Mesajı)= Genel kabul görmüş kart veya pos bankası cevabının açıklamasıdır.

Alan Adı Tip Uzunluk Format Açıklama


KuveytTurkVPosMessage Başlangıç tag
APIVersion Doldurulması zorunlu bir alan değildir.
3D Secure işlemlerinde kartın/müşterinin
doğrulanması aşamasında, kullanıcı bir başka
sayfaya yönlendirilmektedir. Bu aşamada
işlemler arasında bağlantı bulunmamaktadır. Bu
& içeremez. nedenle işlemlere ait sonuçlar üye işyerinin
& belirleyeceği bir sayfaya gönderilmektedir.
şeklinde Başarılı 3D Secure işleme ait sonucun
OkUrl Text 500 tanımlanmalı gönderileceği adrestir.
& içeremez.
&
şeklinde Başarısız 3D Secure işlemine ait sonucun
FailUrl Text 500 tanımlanmalı gönderileceği adrestir.
Ödeme işlemine ait bilgilerin doğruluğunun
kontrol edilmesi için kullanılan veridir. Daha
sonra sağlanacak algoritma ile üretilecek bu
veri, SanalPos tarafında da üretilecek ve bu
veriler karşılaştırılacaktır. Bu kontrolden
HashData geçemeyen ödemeler gerçekleştirilmemektedir.
Üye işyerinin Kuveyt Türk SanalPos servisinde
MerchantId Tamsayı - kayıtlı özel numarasıdır.
Üye işyerinin Kuveyt Türk'te yer alan
SanalPos'u için kullanılabileceği hesaba ait
CustomerId Tamsayı 4 müşteri numarasıdır.
Harf veya https://kurumsal.kuveytturk.com.tr adresine
rakam login olarak kullanıcı işlemleri sayfasında APİ
UserName Text 10 girilebilir. rolünde kullanıcı oluşturulmalıdır.
16 karakter
yalnızca Kartın üzerinde ki 16 haneli numaradır , 16
CardNumber Text 16 rakam içerir digite olacak şekilde gönderilmelidir.
Kartın ön yüzünde bulunan son kullanma
Yılın son 2 tarihinin yılıdır , 2 digite olarak gönderilecektir.
CardExpireDateYear Text 2 rakamı (Örn ; 2019 için 19)
2 karakter
olmak
zorunda. 01 Kartın ön yüzünde bulunan son kullanma
CardExpireDateMonth Text 2 gibi tarihinin ayıdır , 2 digite olarak gönderilecektir.
Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
3 veya 4
karakter ve
sadece Kartın arka yüzündeki 3 haneli güvenlik
CardCVV2 Text 4 rakam kodudur. 3 digite olarak gönderilecektir.
Sadece harf
CardHolderName Text 50 girilebilir. Kartın ön yüzünde yer alan isim bilgisidir.
Visa,
MasterCard
ve TROY
dışında
kabul Kart numarasına göre bu alan banka tarafından
CardType Text 50 edilmez. kontrol edilmektedir.
Sadece 0 Request gönderilirken girilmesi zorunlu bir alan
BatchID Tamsayı 8 kabul edilir. değildir.
Harf veya
rakam
TransactionType Text girilebilir. Sale olarak gönderilmesi gerekmektedir.
Negatif
olmayan tam Taksit sayısı bu alana girilmelidir , taksit yapma
InstallmentCount Tamsayı 4 sayılar yetkiniz bulunmuyorsa 0 olarak gönderilmelidir.

Negatif
olmayan tam
Amount Tamsayı 22 sayılar İşlem tutarı virgülsüz olarak gönderilmelidir.
Negatif
olmayan tam Amount değeri ile aynı olacak şekilde
DisplayAmount Tamsayı 20 sayılar gönderilmelidir.
4 haneli
döviz kodu. Para birimidir , 0949 olarak gönderilmesi
CurrencyCode Text 4 0949 gibi gerekmektedir.
Harf veya
rakam İşlemin üye işyeri tarafında yer alan
MerchantOrderId Text 50 girilebilir. numarasıdır.
Negatif
olmayan tam İşlemin yapılacağı güvenlik türü bilgisidir.
TransactionSecurity Tamsayı 4 sayılar 3D methodu için 3 değeri gönderilmelidir.


4. Entegrasyon

Sanal Pos tarafından sunulan Güvenli ödeme yöntemi için kullanılacak örnek bir entegrasyon
işlemi bu kısımda anlatılmaktadır.
Üye işyeri sipariş detayını görüntüler. Kullanıcıdan, 3D Secure ödeme işlemini seçmesi beklenir.
Üye işyeri kullanıcıdan kart bilgilerini alır. Kart, sipariş ve üye işyerine ait bilgileri içeren mesaj
oluşturulur. Mesajda yer alacak HashData alanına dikkat edilmelidir. Bu mesaj yapısı XML formatındadır. Bir
sonraki bölümde mesaj yapısı ve örnek mesaj yer almaktadır.

 Üye işyeri oluşturduğu XML mesajı Sanal Pos tarafından sunulan Güvenli ödeme noktasına HTTP
POST yöntemi ile gönderir.
Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
 Bu işlem sonucunda HTML yapısında bir cevap yer almaktadır. Üye işyeri bu
HTML cevabı tarayıcıya iletmelidir.

 Sanal Pos tarafından gerçekleştirilecek işlemler sonrasında işleme ait sonuç XML mesaj şeklinde
FailUrl ya da OkUrl e HTTP Post ile iletilecektir. Bir sonraki bölümde mesaj yapısı ve örnek mesaj yer
almaktadır.

 Güvenli Ödeme şifre ekranı ile sadece kart doğrulama işlemi yapılmaktadır ,
otorizasyon verilmemektedir, otorizasyon almak için onay 3D model ödeme onaylama adresine
istekte bulunmanız gerekmektedir.

 Üye işyeri FailUrl'e veya OkUrl'e gelecek cevaba göre kontrollerini yapar, dilerse kullanıcıya
gösterebilir.

 Eğer işlem sonucu başarılı ise(mesaj OkUrl'e iletildi ise) üye işyeri ödeme işlemini
sonlandırmak için Sanal Pos 3D Model Provizyon adresine ödeme mesajı göndermelidir.

 Gönderilecek mesajda, bu noktada gelen cevapta yer alan "MD" değeri ile birlikte ilk aşamada gönderilen üye işyeri
ve sipariş bilgileri gönderilmelidir.

 Sanal Pos 3D Model Provizyon adresine gönderilen mesaj Sanal Pos servisi
tarafından işlenir ve XML cevap verilir. XML cevapta yer alan ResponseCode değeri "00" olduğu durumda
ödeme işlemi gerçekleşmiş olmaktadır.

4.1.Kullanılan Mesaj yapıları

4.1.1.Satış İşlemi Mesaj Örneği (Request 1)


<KuveytTurkVPosMessage xmlns:xsi=http://www.w3.org/2001/XMLSchemainstance
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<APIVersion>1.0.0</APIVersion>

<OkUrl>http://localhost:44785/Home/Success</OkUrl>

<FailUrl>http://localhost:44785/Home/Fail</FailUrl>

<HashData>krZIKyn4vFdbsqO+saAQVgzps1U=</HashData>

<MerchantId>496</MerchantId>

<CustomerId>400235</CustomerId>

<UserName>apiuser</UserName>

<CardNumber>4025906425232421</CardNumber>

<CardExpireDateYear>25</CardExpireDateYear>
Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
<CardExpireDateMonth>09</CardExpireDateMonth>

<CardCVV2>154</CardCVV2>

<CardHolderName>Ethem Yılmaz</CardHolderName>

<CardType>Troy</CardType>

<TransactionType>Sale</TransactionType>

<InstallmentCount>0</InstallmentCount>

<Amount>8650</Amount>

<DisplayAmount>8650</DisplayAmount>

<CurrencyCode>0949</CurrencyCode>

<MerchantOrderId>Siparis_16012019</MerchantOrderId>

<TransactionSecurity>3</TransactionSecurity>

</KuveytTurkVPosMessage>

4.1.2.Satış İşlemi Mesaj Örneği Banka Cevabı (Response 1)


<VPosMessage>

<OrderId>18839791</OrderId>

<OkUrl>http://localhost:44785/Home/Success</OkUrl>

<FailUrl>http://localhost:44785/Home/Fail</FailUrl>

<MerchantId>496</MerchantId>

<SubMerchantId>0</SubMerchantId>

<CustomerId>0</CustomerId>

<UserName>apiuser</UserName>

<HashPassword>c77dFssAnYSy6O2MJo+5tMYtGVc=</HashPassword>

<CardNumber>4025906425232421</CardNumber>

<BatchID>177</BatchID>

<InstallmentCount>0</InstallmentCount>

<Amount>8650</Amount>

<MerchantOrderId>Siparis_16012019</MerchantOrderId>

<FECAmount>0</FECAmount>

<CurrencyCode>949</CurrencyCode>

<QeryId>0</QeryId>

<DebtId>0</DebtId>

Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
<SurchargeAmount>0</SurchargeAmount>

<SGKDebtAmount>0</SGKDebtAmount>

<TransactionSecurity>3</TransactionSecurity>

<PaymentId xsi:nil= ”true” />

<OrderPOSTransactionId xsi:nil="true" />

<TranDate xsi:nil="true" />

</VPosMessage>

<IsEnrolled>true</IsEnrolled>

<IsVirtual>false</IsVirtual>

<ResponseCode>00</ResponseCode>

<ResponseMessage>Kart doğrulandı.</ResponseMessage>

<OrderId>18839791</OrderId>

<TransactionTime>0001-01-01T00:00:00</TransactionTime>

<MerchantOrderId>Siparis_16012019</MerchantOrderId>

<HashData>D2YGYlO9A2yx/5u/lcAfwpPhThA=</HashData>

<MD>NywtwVyca3Aiea0Y9h6bmq785hNclrVXAlS4T8TFYOsZVmkn0l/BWqOTd6qRh6rr</MD>

<ReferenceId>2d801731553142c7b8d89e30fc30fc2e</ReferenceId>

4.1.3. Satış İşlemi Onay Mesaj Örneği (Request 2)


<KuveytTurkVPosMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<APIVersion>1.0.0</APIVersion>

<HashData>spox3Wp2IOucLe7TAQ3FSsMt4ag=</HashData>

<MerchantId>496</MerchantId>

<CustomerId>400235</CustomerId>

<UserName>apiuser</UserName>

<TransactionType>Sale</TransactionType>

<InstallmentCount>0</InstallmentCount>

<Amount>8650</Amount>

<MerchantOrderId>Siparis_16012019</MerchantOrderId>

<TransactionSecurity>3</TransactionSecurity>
Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
<KuveytTurkVPosAdditionalData>

<AdditionalData>

<Key>MD</Key>

<Data>NywtwVyca3Aiea0Y9h6bmq785hNclrVXAlS4T8TFYOsZVmkn0l/BWqOTd6qRh6rr</Data>

</AdditionalData>

</KuveytTurkVPosAdditionalData>

</KuveytTurkVPosMessage>

4.1.4.Ödeme İşlem Sonucu Mesaj Yapısı (Response 2)

<VPosMessage>

<OrderId>18839791</OrderId>

<OkUrl>http://localhost:44785/Home/Success</OkUrl>

<FailUrl>http://localhost:44785/Home/Fail</FailUrl>

<MerchantId>496</MerchantId>

<SubMerchantId>0</SubMerchantId>

<CustomerId>400235</CustomerId>

<UserName>apiuser</UserName>

<HashPassword>c77dFssAnYSy6O2MJo+5tMYtGVc=</HashPassword>

<CardNumber>4025906425232421</CardNumber>

<BatchID>177</BatchID>

<InstallmentCount>0</InstallmentCount>

<Amount>8650</Amount>

<MerchantOrderId>Siparis_16012019</MerchantOrderId>

<FECAmount>0</FECAmount>

<CurrencyCode>949</CurrencyCode>

<QeryId>0</QeryId>

<DebtId>0</DebtId>

<SurchargeAmount>0</SurchargeAmount>

<SGKDebtAmount>0</SGKDebtAmount>

<TransactionSecurity>3</TransactionSecurity>

<PaymentId xsi:nil="true" />

Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
<OrderPOSTransactionId xsi:nil="true" />

<TranDate xsi:nil="true" />

</VPosMessage>

<IsEnrolled>true</IsEnrolled>

<IsVirtual>false</IsVirtual>

<ProvisionNumber>001895</ProvisionNumber>

<RRN>037616174577</RRN>

<Stan>114577</Stan>

<ResponseCode>00</ResponseCode>

<ResponseMessage>OTORİZASYON VERİLDİ</ResponseMessage>

<OrderId>18839791</OrderId>

<TransactionTime>2019-16-12T16:13:59.98</TransactionTime>

<MerchantOrderId>Siparis_16012019</MerchantOrderId>

<HashData>WFShNDqXnGs6P2qvCZ5zETIulCg=</HashData>

<BusinessKey>201901160698985742960003703</BusinessKey>

</VPosTransactionResponseContract>

</ResponseMessage>

Not: Ödeme işlemine ait cevap mesajının içerisinde yer alan VPOSMessage alanında, üye işyerlerinin
ödeme işlemi için gönderdikleri mesaj yer almaktadır.

Not: OkUrl veya FailUrl e iletilecek bu mesaj AuthenticationResponse altında UrlEncoded olacak
şekilde gönderilmektedir. Mesajı kullanmak için gelen formun içinde AuthenticationResponse
anahtarıyla gönderilen değeri UrlDecode ile çözünüz. (Örneğin .net için;
System.Web.HttpUtility.UrlDecode(Request.Form["AuthenticationResponse"]) şeklinde kod parçası
kullanınız.)

5.HashData Hesaplamaları

İşyerine gelen cevabın Kuveyt Türk Sanal POS tarafından gönderildiğinin kontrol edilebilmesi için HashData
değeri yer almaktadır. HashData alanının, üye işyerinin kendi oluşturduğu HashData ile aynı değere sahip
olması bu cevap mesajının Kuveyt Türk Sanal POS tarafından gönderildiğini doğrulanmıştır.

Banka tarafında gönderilen Cevap mesajı Hash hesaplamasında kullanılan parametreler şöyledir:

MerchantOrderId, RRN, ResponseCode, OrderId, hashPassword


Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
Not: “Response 1” banka cevap mesaj yapısında RRN üretilmediğinden hash hesaplamasına dâhil edilmemektedir.
MerchantOrderId, ResponseCode, OrderId, hashPassword parametreleri kullanılmaktadır.

İşyerinin satış işleminde göndermesi gereken Hash hesaplamasında kullanılan parametreler şöyledir:

MerchantId, MerchantOrderId, Amount, OkUrl, FailUrl, UserName, hashPassword

Not: Satış İşlemi Onay Mesaj (Request 2) yapısında sayfa yönlendirmesi yapılmadığından hash hesaplamasında OkUrl,
FailUrl alanları dahil edilmeyecektir.

MerchantId, MerchantOrderId, Amount, UserName, hashPassword

5.1.HashData Hesaplama
$Password="";// Web Yönetim ekranalrindan olusturulan api rollü kullanici sifresi

$HashedPassword = base64_encode(sha1($Password,"ISO-8859-9")); //md5($Password);

$HashData=
base64_encode(sha1($MerchantId.$MerchantOrderId.$Amount.$OkUrl.$FailUrl.$UserName.$HashedPassword , "ISO-
8859-9"));

6.Örnek Kod Parçaları (PHP)

Ödeme İşlemi Yapılması


<?php

$Name=$_POST["CardHolderName"];

$CardNumber=$_POST["CardNumber"];

$CardExpireDateMonth=$_POST["CardExpireDateMonth"];

$CardExpireDateYear=$_POST["CardExpireDateYear"];

$CardCVV2=$_POST["CardCVV2"];

$Type = "Sale";

$CurrencyCode = "0949"; //TL islemleri için

$MerchantOrderId = "01-eticaret";// Siparis Numarasi

$Amount = ""; //Islem Tutari // örnegin 1.00TL için 100 kati yani 100 yazilmali

$CustomerId = "";//Müsteri Numarasi

Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
$MerchantId = ""; //Magaza Kodu

$OkUrl = ""; //Basarili sonuç alinirsa, yönledirelecek sayfa

$FailUrl =" ";//Basarisiz sonuç alinirsa, yönledirelecek sayfa

$UserName=""; // Web Yönetim ekranalrindan olusturulan api rollü kullanici

$Password="";// Web Yönetim ekranalrindan olusturulan api rollü kullanici sifresi

$HashedPassword = base64_encode(sha1($Password,"ISO-8859-9")); //md5($Password);

$HashData=base64_encode(sha1($MerchantId.$MerchantOrderId.$Amount.$OkUrl.$FailUrl.$UserName.$HashedPasswor
d , "ISO-8859-9"));

$TransactionSecurity=3;

$xml= '<KuveytTurkVPosMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


xmlns:xsd="http://www.w3.org/2001/XMLSchema">'

.'<APIVersion>1.0.0</APIVersion>'

.'<OkUrl>'.$OkUrl.'</OkUrl>'

.'<FailUrl>'.$FailUrl.'</FailUrl>'

.'<HashData>'.$HashData.'</HashData>'

.'<MerchantId>'.$MerchantId.'</MerchantId>'

.'<CustomerId>'.$CustomerId.'</CustomerId>'

.'<UserName>'.$UserName.'</UserName>'

.'<CardNumber>'.$CardNumber.'</CardNumber>'

.'<CardExpireDateYear>'.$CardExpireDateYear.'</CardExpireDateYear>'

.'<CardExpireDateMonth>'.$CardExpireDateMonth.'</CardExpireDateMonth>'

.'<CardCVV2>'.$CardCVV2.'</CardCVV2>'

.'<CardHolderName>'.$Name.'</CardHolderName>'

.'<CardType>MasterCard</CardType>'

.'<BatchID>0</BatchID>'

.'<TransactionType>'.$Type.'</TransactionType>'

.'<InstallmentCount>0</InstallmentCount>'

.'<Amount>'.$Amount.'</Amount>'

.'<DisplayAmount>'.$Amount.'</DisplayAmount>'

.'<CurrencyCode>'.$CurrencyCode.'</CurrencyCode>'

.'<MerchantOrderId>'.$MerchantOrderId.'</MerchantOrderId>'

.'<TransactionSecurity>3</TransactionSecurity>'

.'<TransactionSide>Sale</TransactionSide>'
Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
.'</KuveytTurkVPosMessage>';

try {

$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/xml', 'Content-length: '. strlen($xml)) );

curl_setopt($ch, CURLOPT_POST, true); //POST Metodu kullanarak verileri gönder

curl_setopt($ch, CURLOPT_HEADER, false); //Serverdan gelen Header bilgilerini önemseme.

curl_setopt($ch, CURLOPT_URL,'https://boa.kuveytturk.com.tr/sanalposservice/Home/ThreeDModelPayGate');
//Baglanacagi URL

curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //Transfer sonuçlarini al.

$data = curl_exec($ch);

curl_close($ch);

catch (Exception $e) {

echo 'Caught exception: ', $e->getMessage(), "\n";

echo($data);

error_reporting(E_ALL);

ini_set("display_errors", 1);

?>

İşlem Sonucunun Alınması

<?php

$AuthenticationResponse=$_POST["AuthenticationResponse"];

$RequestContent = urldecode($AuthenticationResponse);

$xxml=simplexml_load_string($RequestContent) or die("Error: Cannot create object");

print_r($xxml);

?>

Ödeme İşleminin Onaylanması


Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
<?php

$MerchantOrderId = $_POST["MerchantOrderId"];

$Amount = $_POST["Amount"]; //Islem Tutari

$MD = $_POST["MD"]; //Islem Tutari

$Type = "Sale";

$CurrencyCode = "0949"; //TL islemleri için

$CustomerId = "";//Müsteri Numarasi

$MerchantId = ""; //Magaza Kodu

$UserName=""; // Web Yönetim ekranalrindan olusturulan api rollü kullanici

$Password="";// Web Yönetim ekranalrindan olusturulan api rollü kullanici sifresi

$HashedPassword = base64_encode(sha1($Password,"ISO-8859-9")); //md5($Password);

$HashData = base64_encode(sha1($MerchantId.$MerchantOrderId.$Amount.$UserName.$HashedPassword , "ISO-8859-


9"));

$TransactionSecurity=3;

$xml='<KuveytTurkVPosMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<APIVersion>1.0.0</APIVersion>

<HashData>'.$HashData.'</HashData>

<MerchantId>'.$MerchantId.'</MerchantId>

<CustomerId>'.$CustomerId.'</CustomerId>

<UserName>'.$UserName.'</UserName>

<TransactionType>Sale</TransactionType>

<InstallmentCount>0</InstallmentCount>

<Amount>'.$Amount.'</Amount>

<MerchantOrderId>'.$MerchantOrderId.'</MerchantOrderId>

<TransactionSecurity>3</TransactionSecurity>

<KuveytTurkVPosAdditionalData>

<AdditionalData>

<Key>MD</Key>

<Data>'.$MD.'</Data>

</AdditionalData>

</KuveytTurkVPosAdditionalData>

</KuveytTurkVPosMessage>';
Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019
echo "\n";

try {

$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/xml', 'Content-length: '. strlen($xml)) );

curl_setopt($ch, CURLOPT_POST, true); //POST Metodu kullanarak verileri gönder

curl_setopt($ch, CURLOPT_HEADER, false); //Serverdan gelen Header bilgilerini önemseme.

curl_setopt($ch,CURLOPT_URL,'https://boa.kuveytturk.com.tr/sanalposservice/Home/ThreeDModelProvisionGate'
); //Baglanacagi URL

curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //Transfer sonuçlarini al.

$data = curl_exec($ch);

curl_close($ch);

catch (Exception $e) {

echo 'Caught exception: ', $e->getMessage(), "\n";

echo($data);

error_reporting(E_ALL);

ini_set("display_errors", 1);

?>

7.Sanal Pos Güvenli Ödeme Noktası Adresleri

Sanal Pos Güvenli Ödeme Noktası (Production)


https://boa.kuveytturk.com.tr/sanalposservice/Home/ThreeDModelPayGate

Sanal Pos Güvenli Ödeme Onaylama (Production)


https://boa.kuveytturk.com.tr/sanalposservice/Home/ThreeDModelProvisionGate

Kuveyt Türk Katılım Bankası Sanal Pos Entegrasyon Dokümanı Güncelleme Tarih: 15/01/2019

You might also like