#ایجاد تراکنش

جهت استفاده تستی از وب سرویس میتوانید از پین sandbox استفاده نمایید.

# مرحله اول : ارسال پارامتر

وب سرویس بر پایه ی POST می باشد.

آدرس وب سرویس

method: Post
URL: https://panel.aqayepardakht.ir/api/v2/create

از این وب سرویس برای ایجاد کد تراکنش استفاده می شود.

پارامتر های ورودی

نام پارامتر اجباری / اختیاری توضیحات
pin اجباری کد پین درگاه
amount اجباری مبلغ تراکنش [ تومان ] بین 100 تا 100,000,000 تومان
callback اجباری آدرس برگشت [ نتیجه پرداخت به این آدرس ارسال می شود ]
card_number اختیاری شماره کارت مجاز به پرداخت
invoice_id اختیاری شماره فاکتور
mobile اختیاری ذخیره شماره کارت در درگاه برای پرداخت های بعدی
email اختیاری ایمیل پرداخت کننده
description اختیاری توضیحات

بعد از ارسال مقادیر بالا با متد 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 اجباری مبلغ تراکنش [ تومان ] بین 100 تا 100,000,000 تومان
transid اجباری کد تراکنش دریافت شده [ transid ]

بعد از ارسال مقادیر بالا با متد POST خروجی به صورت زیر خواهد بود.

پاسخ دریافتی در صورت صحت اطلاعات ارسالی

HTTP/1.1 200 OK
{
"status" : "success",
"code" : "1"
}

پاسخ دریافتی در صورت بروز خطا

HTTP/1.1 422 Error
{
"status" : "error",
"code" : "error code"
}

# کد های خطا

کد توضیحات
0 پرداخت انجام نشد
1 پرداخت با موفقیت انجام شد
2 تراکنش قبلا وریفای شده است
  {
    '-1':'amount نمی تواند خالی باشد',
    '-2':'کد پین درگاه نمی تواند خالی باشد',
    '-3':'callback نمی تواند خالی باشد',
    '-4':'amount باید عددی باشد',
    '-5':'amount باید بین 100 تا 100,000,000 تومان باشد',
    '-6':'کد پین درگاه اشتباه هست',
    '-7':'transid نمی تواند خالی باشد',
    '-8':'تراکنش مورد نظر وجود ندارد',
    '-9':'کد پین درگاه با درگاه تراکنش مطابقت ندارد',
    '-10':'مبلغ با مبلغ تراکنش مطابقت ندارد',
    '-11':'درگاه درانتظار تایید و یا غیر فعال است',
    '-12':'امکان ارسال درخواست برای این پذیرنده وجود ندارد',
    '-13':'شماره کارت باید 16 رقم چسبیده بهم باشد'
}
کد توضیحات
1- amount نمی تواند خالی باشد
2- کد پین درگاه نمی تواند خالی باشد
3- callback نمی تواند خالی باشد
4- amount باید عددی باشد
5- amount باید بین 100 تا 100,000,000 تومان باشد
6- کد پین درگاه اشتباه هست
7- transid نمی تواند خالی باشد
8- تراکنش مورد نظر وجود ندارد
9- کد پین درگاه با درگاه تراکنش مطابقت ندارد
10- مبلغ با مبلغ تراکنش مطابقت ندارد
11- درگاه درانتظار تایید و یا غیر فعال است
12- امکان ارسال درخواست برای این پذیرنده وجود ندارد
13- شماره کارت باید 16 رقم چسبیده بهم باشد

نمونه کد 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 {
// تراکنش ناموفق
}