#ایجاد تراکنش
جهت استفاده تستی از وب سرویس میتوانید از پین sandbox استفاده نمایید.
# مرحله اول : ارسال پارامتر
وب سرویس بر پایه ی POST می باشد.
آدرس وب سرویس
method: Post
URL: https://panel.aqayepardakht.ir/api/v2/createاز این وب سرویس برای ایجاد کد تراکنش استفاده می شود.
پارامتر های ورودی
| نام پارامتر | اجباری / اختیاری | توضیحات |
|---|---|---|
| pin | اجباری | کد پین درگاه |
| amount | اجباری | مبلغ تراکنش [ تومان ] بین 1,000 تا 200,000,000 تومان |
| callback | اجباری | آدرس برگشت [ نتیجه پرداخت به این آدرس ارسال می شود ] |
| callback_method | اختیاری | متد بازگشت پرداخت کننده به سایت پذیرنده به صورت پیش فرض POST میباشد [ صرفا مقدار POST یا GET ] ( توصیه میشود از مقدار GET استفاده کنید ) |
| card_number | اختیاری | شماره کارت مجاز به پرداخت |
| invoice_id | اختیاری | شماره فاکتور |
| mobile | اختیاری | ذخیره شماره کارت در درگاه برای پرداخت های بعدی |
| اختیاری | ایمیل پرداخت کننده | |
| description | اختیاری | توضیحات |
* آدرس callback باید با آدرس درگاه پرداخت تایید شده در آقای پرداخت بر روی یک دامنه باشد.
بعد از ارسال مقادیر بالا با متد POST خروجی به صورت زیر خواهد بود.
پاسخ دریافتی در صورت صحت اطلاعات ارسالی
HTTP/1.1 200 OK
{
"status" : "success",
"transid" : "TransId"
}
پاسخ دریافتی در صورت بروز خطا
HTTP/1.1 422 Error
{
"status" : "error",
"code" : "error code"
}
# مرحله دوم : انتقال کاربر به صفحه پرداخت
در صورتی که اطلاعات به صورت صحیح ارسال شود , کد تراکنش در پاسخ این وب سرویس دریافت می شود . بعد از آن نیاز است تا جهت انجام عملیات پرداخت , کاربر را به همراه کد تراکنش دریافت شده به مسیر زیر هدایت نمایید.
نکته: در این مرحله آدرس Referer باید با دامنهای که ترمینال شاپرکی برای آن صادر شده است، همخوانی داشته باشد در غیر این صورت کاربر با صفحه خطا مواجه می شود.
method: Get
URL: https://panel.aqayepardakht.ir/startpay/{transid}* درصورت استفاده از sandbox برای انتقال به صفحه پرداخت باید از آدرس زیر استفاده کنید.
method: Get
URL: https://panel.aqayepardakht.ir/startpay/sandbox/{transid}# مرحله سوم : بازگشت به سایت پذیرنده
درهنگام خروج کاربر از بانک و منتقل شدن به آدرس callback پارامتر های زیر به آدرس callback POST میشود.
* اگر در هنگام فراخوانی وبسرویس create ،پارامتر callback_method با مقدار GET ارسال شود، بازگشت به سایت پذیرنده با متد GET انجام میشود.
| نام پارامتر | توضیحات |
|---|---|
| transid | کد تراکنش |
| cardnumber | شماره کارت پرداخت کننده که درصورت موفق بودن تراکنش دریافت میکنید. |
| tracking_number | شماره تراکنش |
| invoice_id | شماره فاکتور ارسال شده در هنگام درخواست ایجاد تراکنش (در صورت ارسال) |
| bank | نام بانک پرداخت |
| status | وضعیت تراکنش که در صورت موفق بودن تراکنش 1، در غیر اینصورت 0 میباشد. |
نکته
جهت جلوگیری از درخواست اضافه برای وریفای تراکنش، میتوانید از پارامتر status استفاده کنید که درصورت ناموفق بودن تراکنش دیگر درخواست وریفای تراکنش را ارسال نکنید.
# مرحله چهارم : وریفای تراکنش
آدرس وب سرویس
method: Post
URL: https://panel.aqayepardakht.ir/api/v2/verifyپارامتر های ورودی
| نام پارامتر | اجباری / اختیاری | توضیحات |
|---|---|---|
| pin | اجباری | کد پین درگاه |
| amount | اجباری | مبلغ تراکنش [ تومان ] بین 1,000 تا 200,000,000 تومان |
| transid | اجباری | کد تراکنش دریافت شده [ transid ] |
بعد از ارسال مقادیر بالا با متد POST خروجی به صورت زیر خواهد بود.
پاسخ دریافتی در صورت صحت اطلاعات ارسالی
HTTP/1.1 200 OK
{
"status" : "success",
"code" : "1"
}
پاسخ دریافتی در صورت بروز خطا
HTTP/1.1 422 Error
{
"status" : "error",
"code" : "error code"
}
# کد های خطا
| وضعیت | کد | توضیحات |
|---|---|---|
| error | 0 | پرداخت انجام نشد |
| success | 1 | پرداخت با موفقیت انجام شد |
| error | 2 | تراکنش قبلا وریفای و پرداخت شده است |
{
'-1':'amount نمی تواند خالی باشد',
'-2':'کد پین درگاه نمی تواند خالی باشد',
'-3':'callback نمی تواند خالی باشد',
'-4':'amount باید عددی باشد',
'-5':'amount باید بین 1,000 تا 200,000,000 تومان باشد',
'-6':'کد پین درگاه اشتباه هست',
'-7':'transid نمی تواند خالی باشد',
'-8':'تراکنش مورد نظر وجود ندارد',
'-9':'کد پین درگاه با درگاه تراکنش مطابقت ندارد',
'-10':'مبلغ با مبلغ تراکنش مطابقت ندارد',
'-11':'درگاه درانتظار تایید و یا غیر فعال است',
'-12':'امکان ارسال درخواست برای این پذیرنده وجود ندارد',
'-13':'شماره کارت باید 16 رقم چسبیده بهم باشد',
'-14':'درگاه برروی سایت دیگری درحال استفاده است',
'-15':'آدرس کال بک ارسال شده با دامنه تایید شده درگاه پرداخت مغایرت دارد'
'-16':'ارجاع دهنده نامعتبر است (Referrer ارسال نشده است)'
'-17':'مقدار ارسال شده برای پارامتر callback_method باید POST یا GET باشد'
}
| کد | توضیحات |
|---|---|
| 1- | amount نمی تواند خالی باشد |
| 2- | کد پین درگاه نمی تواند خالی باشد |
| 3- | callback نمی تواند خالی باشد |
| 4- | amount باید عددی باشد |
| 5- | amount باید بین 1,000 تا 200,000,000 تومان باشد |
| 6- | کد پین درگاه اشتباه هست |
| 7- | transid نمی تواند خالی باشد |
| 8- | تراکنش مورد نظر وجود ندارد |
| 9- | کد پین درگاه با درگاه تراکنش مطابقت ندارد |
| 10- | مبلغ با مبلغ تراکنش مطابقت ندارد |
| 11- | درگاه درانتظار تایید و یا غیر فعال است |
| 12- | امکان ارسال درخواست برای این پذیرنده وجود ندارد |
| 13- | شماره کارت باید 16 رقم چسبیده بهم باشد |
| 14- | درگاه برروی سایت دیگری درحال استفاده است |
| 15- | آدرس کال بک ارسال شده با دامنه تایید شده درگاه پرداخت مغایرت دارد |
| 16- | ارجاع دهنده نامعتبر است (Referrer ارسال نشده است) |
| 17- | مقدار ارسال شده برای پارامتر callback_method باید POST یا GET باشد |
نمونه کد PHP
<?php
// Send Parameter
$data = [
'pin' => 'Gateway Pin',
'amount' => 20000,
'callback' => 'https://mysite.com/verify.php',
'callback_method ' => 'GET',
'card_number' => '1111222233334444',
'mobile' => '09123456789',
'email' => 'test@test.com',
'invoice_id' => '123456',
'description' => 'Description'
];
$data = json_encode($data);
$ch = curl_init('https://panel.aqayepardakht.ir/api/v2/create');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data))
);
$result = curl_exec($ch);
curl_close($ch);
$result = json_decode($result);
if ($result->status == "success") {
header('Location: https://panel.aqayepardakht.ir/startpay/' . $result->transid);
} else {
echo "خطا";
}
// verify Transaction
$data = [
'pin' => 'Gateway Pin',
'amount' => 20000,
'transid' => $_GET['transid']
];
$data = json_encode($data);
$ch = curl_init('https://panel.aqayepardakht.ir/api/v2/verify');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data))
);
$result = curl_exec($ch);
curl_close($ch);
$result = json_decode($result);
if ($result->code == "1") {
// تراکنش موفق
} else {
// تراکنش ناموفق
}