BIN sorgulama servisi ile bir BIN numarası gönderip kartın detaylı bilgilerine ulaşabilirsiniz.
1- Detayını sorgulamak istediğiniz kartın BIN numarasını (kart numarasının ilk 6 veya 8 hanesini daha doğru sonuç için 8 hane kullanılmasını tavsiye ederiz.) ve aşağıdaki
tabloda belirtilen diğer bilgileri https://www.paytr.com/odeme/api/bin-detail adresine POST ile
gönderin.
Token üretiminde kullanılacak veriler
Alan adı / tipi | Açıklama | Zorunlu | Kısıtlar |
---|---|---|---|
bin_number | BIN Numarası: Sorgulama yapılmak istenen karta ait kart numarasının ilk 6 veya 8 hanesi. Maksimum doğrulama için 8 hane kullanın. | Evet | Maksimum 8 hane olacak şekilde. |
merchant_id | PayTR Mağaza Paneli > Destek & Kurulum > Entegrasyon Bilgileri sayfası üzerinden ulaşabileceğiniz, mağazanıza özgü değer. | 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ı |
bin_number(string) | Evet | BIN Numarası: Kart numarasının ilk 6 veya 8 hanesi |
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- Yaptığınız bu isteğe cevap JSON formatında döner.
a. BIN Numarası tanmlı değilse (Örneğin bir yurtdışı kartı ise) status değeri “failed” olarak döner.
b. Eğer BIN numarası tanımlı ise status değeri “success” olarak döner ve aşağıdaki tabloda bulunan
bilgiler döner.
c. Eğer sorguda bir hatanız varsa status değeri “error” döner. Bu durumda hata detayı için
“err_msg” içeriğini kontrol etmelisiniz.
Status “success” durumunda dönen diğer bilgiler aşağıdaki tabloda detaylandırılmıştır.
Alan adı / tipi | Değerler | Açıklama |
---|---|---|
status (string) | success, error veya failed | Status: Sorgulama sonucu |
cardType (string) | credit / debit | Kart Türü: Kartın tipi |
businessCard (string) | y / n | Şirket Kartı: Kartın şirket kartı olup olmadığı bilgisi |
bank (string) | Örnek: Yapı Kredi | Banka: Kartın bankası |
brand (string) | Örnek: axess, bonus,cardfinans, combo,world, paraf, advantage,maximum,saglamkart | Kart Program Ortaklığı İsmi: Kartın program ortaklığı ismi(Kart bir program ortaklığına dahil değil ise değer none olur. Bu durumda ilgili kart ile PayTR üzerinden taksitli işlem yapılamaz.) |
schema (string) | VISA, MASTERCARD, AMEX, TROY, OTHER | Kartın hangi şemaya ait olduğu. (Kartın hangi şemaya ait olduğu bilinmiyorsa OTHER döner.) |
bankCode (int) | Örnek: 0010 | Banka Kodu: Kart bankasının kodu |
allow_non3d (string) | Y(yes) ve N(no) | Non-3D işlem izni sonucu |
<?php
## BIN sorgulama servisi için kullanılacak örnek kod ##
####################### DÜZENLEMESİ ZORUNLU ALANLAR #######################
#
## API Entegrasyon Bilgileri - Mağaza paneline giriş yaparak BİLGİ sayfasından alabilirsiniz.
$merchant_id = 'XXXXXX';
$merchant_key = 'XXXXXX';
$merchant_salt = 'XXXXXX';
#
## Sorgulama yapılmak istenen karta ait kart numarasının ilk 6 veya 8 hanesi. Maksimum doğrulama için 8 hane kullanın.
$bin_number = "";
#
############################################################################################
####### Bu kısımda herhangi bir değişiklik yapmanıza gerek yoktur. #######
$hash_str = $bin_number . $merchant_id . $merchant_salt;
$paytr_token=base64_encode(hash_hmac('sha256', $hash_str, $merchant_key, true));
$post_vals=array(
'merchant_id'=>$merchant_id,
'bin_number'=>$bin_number,
'paytr_token'=>$paytr_token
);
############################################################################################
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.paytr.com/odeme/api/bin-detail");
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 BIN detail request timeout. err:".curl_error($ch));
curl_close($ch);
$result=json_decode($result,1);
if($result['status']=='error')
die("PAYTR BIN detail request error. Error:".$result['err_msg']);
elseif($result['status']=='failed')
die("BIN tanımlı değil. (Örneğin bir yurtdışı kartı)");
else
print_r($result);
?>
BIN Sorgulama örnek kodları indirmek için tıklayın.