İçeriğe geç

API Dokümanı - Taksit Bilgisi Pay N Kolay'a Ait

Bu API’nin kullanımında önce taksitler çağırılır. Taksitleri çağırmak için sx, amount, cardNumber, hosturl, iscardvalid değişkenleri “https://paynkolaytest.nkolayislem.com.tr/Vpos/Payment/PaymentInstallments” adresine Body’de form-data olarak POST edilir.

Sadece BIN numarası ile (kartın ilk 8 hanesi ile) taksit sorgulamak için iscardvalid parametresi “false” olarak gönderilmeli, ya da hiç gönderilmemelidir.

Postman collection’ını indirmek için tıklayınız. Örnek kodları Postman Code sinppet’inde görebilirsiniz.

image

PaymentInstallments servisinden gelen EncodedValue tutar bilgisi AUTHORIZATION_AMOUNT ve taksit bilgisi INSTALLMENT diğer değişkenlerle birlikte Payment Servis’ine Body’de form-data olarak POST edilir. (EncodedValue, installmentNo, amount, sx, clientRefCode, successUrl, failUrl, amount, installmentNo, cardHolderName, month, year, cvv, cardNumber, EncodedValue, use3D, transactionType, hosturl, rnd, hashData, environment).

image

  • İşlem 3D değilse bu aşamada ödeme alınır. İşlem sonlanır. Response Dönüş Parametreleri

Payment servisine POST edildiğinde, 3D true ise 3D formu gelecektir. Bu formu şu şekilde ekranda çalıştırabilirsiniz:

example.php
<?php
// Step 1: Query Installments with PaymentInstallments API
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://paynkolaytest.nkolayislem.com.tr/Vpos/Payment/PaymentInstallments',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'sx' => '118591467|bScbGDYCtPf7SS1N6PQ6/+58rFhW1WpsWINqvkJFaJlu6bMH2tgPKDQtjeA5vClpzJP24uA0vx7OX53cP3SgUspa4EvYix+1C3aXe++8glUvu9Oyyj3v300p5NP7ro/9K57Zcw==',
'amount' => '100.00',
'cardNumber' => '4546711234567894',
'hosturl' => 'https://yoursite.com',
'iscardvalid' => 'false' // Use false to query with BIN only
),
));
$response = curl_exec($curl);
$httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if ($httpCode == 200) {
$installmentData = json_decode($response, true);
$encodedValue = $installmentData['EncodedValue']; // This will be used in payment
echo "Installments retrieved successfully\n";
echo "EncodedValue: " . $encodedValue . "\n";
} else {
echo "Error retrieving installments: " . $response . "\n";
}
// Step 2: Make Payment with EncodedValue from installments
if (isset($encodedValue)) {
$paymentCurl = curl_init();
curl_setopt_array($paymentCurl, array(
CURLOPT_URL => 'https://paynkolaytest.nkolayislem.com.tr/Vpos/Payment/Payment',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array(
'EncodedValue' => $encodedValue,
'installmentNo' => '2',
'amount' => '100.00',
'sx' => '118591467|bScbGDYCtPf7SS1N6PQ6/+58rFhW1WpsWINqvkJFaJlu6bMH2tgPKDQtjeA5vClpzJP24uA0vx7OX53cP3SgUspa4EvYix+1C3aXe++8glUvu9Oyyj3v300p5NP7ro/9K57Zcw==',
'clientRefCode' => '789456|AB76',
'successUrl' => 'https://yoursite.com/success',
'failUrl' => 'https://yoursite.com/fail',
'cardHolderName' => 'John Doe',
'month' => '12',
'year' => '2026',
'cvv' => '123',
'cardNumber' => '4546711234567894',
'use3D' => 'true',
'transactionType' => 'SALES',
'hosturl' => 'https://yoursite.com',
'rnd' => time(), // Random value for security
'hashData' => 'your_calculated_hash_here',
'environment' => 'TEST'
),
));
$paymentResponse = curl_exec($paymentCurl);
$paymentHttpCode = curl_getinfo($paymentCurl, CURLINFO_HTTP_CODE);
curl_close($paymentCurl);
if ($paymentHttpCode == 200) {
echo "Payment request sent successfully\n";
echo "Response: " . $paymentResponse . "\n";
// If use3D is true, the response will contain HTML form for 3D secure
// You need to display this form to the user
if (strpos($paymentResponse, '<form') !== false) {
echo "3D Secure form received. Display this form to user:\n";
// Save or display the HTML form
file_put_contents('3d_form.html', $paymentResponse);
}
} else {
echo "Error in payment: " . $paymentResponse . "\n";
}
}
?>

image

  • Gelen 3D formu ekrana basıldığında ilgili bankanın 3D secure penceresi açılır ve burada 3D secure şifresi girilmesi beklenir.
3D Secure Window