#ایجاد تراکنش
جهت استفاده تستی از وب سرویس میتوانید از پین sandbox استفاده نمایید.
# مرحله اول : ارسال پارامتر
وب سرویس بر پایه ی POST می باشد.
آدرس وب سرویس
method: Post
URL: https://panel.aqayepardakht.ir/api/v2/createاز این وب سرویس برای ایجاد کد تراکنش استفاده می شود.
پارامتر های ورودی
| نام پارامتر | اجباری / اختیاری | توضیحات |
|---|---|---|
| pin | اجباری | کد پین درگاه |
| amount | اجباری | مبلغ تراکنش [ تومان ] بین 1,000 تا 200,000,000 تومان |
| callback | اجباری | آدرس برگشت [ نتیجه پرداخت به این آدرس ارسال می شود ] |
| 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"
}
# مرحله دوم : انتقال کاربر به صفحه پرداخت
در صورتی که اطلاعات به صورت صحیح ارسال شود , کد تراکنش در پاسخ این وب سرویس دریافت می شود . بعد از آن نیاز است تا جهت انجام عملیات پرداخت , کاربر را به همراه کد تراکنش دریافت شده به مسیر زیر هدایت نمایید.
method: Get
URL: https://panel.aqayepardakht.ir/startpay/{transid}* درصورت استفاده از sandbox برای انتقال به صفحه پرداخت باید از آدرس زیر استفاده کنید.
method: Get
URL: https://panel.aqayepardakht.ir/startpay/sandbox/{transid}# مرحله سوم : بازگشت به سایت پذیرنده
درهنگام خروج کاربر از بانک و منتقل شدن به آدرس callback پارامتر های زیر به آدرس callback POST میشود.
پارامتر هایی که به آدرس callback شما POST میشود.
| نام پارامتر | توضیحات |
|---|---|
| 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':'آدرس کال بک ارسال شده با دامنه تایید شده درگاه پرداخت مغایرت دارد'
}
| کد | توضیحات |
|---|---|
| 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- | آدرس کال بک ارسال شده با دامنه تایید شده درگاه پرداخت مغایرت دارد |
نمونه کد PHP
<?php
// Send Parameter
$data = [
'pin' => 'Gateway Pin',
'amount' => 20000,
'callback' => 'https://mysite.com/verify.php',
'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' => $_POST['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 {
// تراکنش ناموفق
}