KULLANICININ KAYITLI KART LİSTESİNİ ALMA (CAPI LIST)
1) Bir kullanıcı ödeme işlemine başlarken kullanıcıya PayTR’da kayıtlı olan kartları listelemek için
https://www.paytr.com/odeme/capi/list adresine aşağıdaki parametreler ile istek yapın.
Token üretiminde kullanılacak veriler
Alan adı / tipi | Açıklama | Zorunlu | Kısıtlar |
---|---|---|---|
utoken | Kart kayıt sonrası ödeme bildiriminde tarafınıza PayTR sisteminden bildirilen kullanıcıya özel token | Evet | - |
merchant_salt | PayTR Mağaza Paneli > Destek & Kurulum > Entegrasyon Bilgileri sayfası üzerinden ulaşabileceğiniz, mağazanıza özgü değer. | Evet | - |
merchant_key | PayTR Mağaza Paneli > Destek & Kurulum > Entegrasyon Bilgileri sayfası üzerinden ulaşabileceğiniz, mağazanıza özgü değer. | Evet | - |
POST REQUEST içeriğinde gönderilecek değerler:
Alan adı / tipi | Zorunlu | Açıklama |
---|---|---|
merchant_id (integer) | Evet | Mağaza No: PayTR tarafından size verilen Mağaza numarası |
utoken (string) | Evet | User Token: Kart kayıt sonrası ödeme bildiriminde tarafınıza PayTR sisteminden bildirilen kullanıcıya özel token |
paytr_token (string) | Evet | Paytr Token: İsteğin sizden geldiğine ve içeriğin değişmediğine emin olmamız için oluşturacağınız değerdir (Hesaplama ile ilgili olarak örnek kodlara bakmalısınız) |
2) Yapılan isteğe aşağıdaki tabloda bulunan değerler JSON formatında dönecektir. Gönderdiğiniz bilgiler ile herhangi bir
eşleşme bulunamadığında cevap boş JSON olarak döner.
Alan adı / tipi | Zorunlu | Olası/Örnek Değerler |
---|---|---|
status (string) | Status: Hata durumunda error olarak döner, işlem başarılı olduğunda döndürülmez | error |
err_msg (string) | Error Message: İstek başarısız olduğu durumlarda err_msg’de hata nedeni döndürülür | Örnek: Bağlantı hatası oluştu |
ctoken (string) | Card Token: Kullanıcının kayıtlı kartını tanımlayan token | |
last_4 (string) | Son 4: Kayıtlı kartın son 4 hanesi | |
require_cvv (string) | CVV gerekli: Bu kayıtlı kart ile ödeme yapmak için CVV gerekip gerekmediği | 0 veya 1 (Bir kart için 1 dönerse, kart ile ödeme yapılabilmesi için kullanıcıdan CVV bilgisini almanız gerekmektedir) |
month (string) | Ay: Kartının son kullanma tarihinin ay bilgisi | Örnek: 05 |
year (string) | Yılı: Kartının son kullanma tarihinin yıl bilgisi | Örnek: 28 |
c_bank (string) | Banka: Kartının bankası | Örnek: Yapı Kredi |
c_name | Adı Soyadı: Kullanıcının kart kayıt sırasında girdiği ad soyadı | |
c_brand (string) | Kart Program Ortaklığı İsmi | Örnek: maximum, bonus,world vb. |
c_type (string) | Kart Tipi: Kredi kartı veya banka kartı / ön ödemeli kart | credit veya debit |
businessCard (string) | Şirket Kartı: Kartın şirket kartı olup olmadığı bilgisi | y / n |
initial (string) | Kart Şeması: 2 ve 5 MasterCard, 3 Amex, 4 VISA, 9 TROY | 2,3,4,5,9 |
schema (string) | Kartın şeması: Kartın hangi şemaya ait olduğu bilinmiyorsa OTHER döner. | VISA, MASTERCARD, AMEX, TROY, vb. |
3) Dönen kart bilgileri alınarak kullanıcıya seçebileceği kayıtlı kartlarını listeleyin.
4) Seçilen kayıtlı kartın ctoken bilgisi ve kullanıcıya ait utoken bilgisini kullanarak ödeme başlatın (Eğer seçilen kart için
require_cvv değeri 1 ise kullanıcıya CVV gireceği bir alan sunmalısınız ve ödeme isteğinde CVV'yi göndermelisiniz).
Bu işlem sonunda kayıtlı kart listesi JSON formatında döner.
<?php
## utoken ile kayıtlı kartların listesi alındığında 1nci adım dokümanında ki zorunlu alanları tamamlayamıyoruz.
## Kayıtlı bir kart ile ödeme işlemini tamamlama adımını tarif edebilir misiniz?
## Kullanıcı kart listesi için örnek kodlar ##
####################### DÜZENLEMESİ ZORUNLU ALANLAR #######################
#
## API Entegrasyon Bilgileri - Mağaza paneline giriş yaparak BİLGİ sayfasından alabilirsiniz.
$merchant_id = 'XXXXXX';
$merchant_key = 'YYYYYYYYYYYYYY';
$merchant_salt = 'ZZZZZZZZZZZZZZ';
#
## Kart kayıt sonrası ödeme bildiriminde tarafınıza PAYTR sisteminden bildirilen kullanıcıya özel token
$utoken = "";
#
############################################################################################
####### Bu kısımda herhangi bir değişiklik yapmanıza gerek yoktur. #######
$hash_str = $utoken . $merchant_salt;
$paytr_token=base64_encode(hash_hmac('sha256', $hash_str, $merchant_key, true));
$post_vals=array(
'merchant_id'=>$merchant_id,
'utoken'=>$utoken,
'paytr_token'=>$paytr_token
);
############################################################################################
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.paytr.com/odeme/capi/list");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1) ;
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_vals);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
//XXX: DİKKAT: lokal makinanızda "SSL certificate problem: unable to get local issuer certificate" uyarısı alırsanız eğer
//aşağıdaki kodu açıp deneyebilirsiniz. ANCAK, güvenlik nedeniyle sunucunuzda (gerçek ortamınızda) bu kodun kapalı kalması çok önemlidir!
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$result = @curl_exec($ch);
if(curl_errno($ch))
die("PAYTR CAPI List connection error. err:".curl_error($ch));
curl_close($ch);
$result=json_decode($result,1);
if($result['status']=='error')
die("PAYTR CAPI list failed. Error:".$result['err_msg']);
else
print_r($result);
?>
List Card Servisi örnek kodlarını indirmek için tıklayın.