#ایجاد تراکنش
جهت استفاده تستی از وب سرویس میتوانید از پین aqayepardakht
استفاده نمایید.
# مرحله اول : ارسال پارامتر
وب سرویس بر پایه ی POST می باشد.
آدرس وب سرویس
از این وب سرویس برای ایجاد کد تراکنش استفاده می شود.
پارامتر های ورودی
نام پارامتر | اجباری / اختیاری | توضیحات |
---|---|---|
pin | اجباری | کد پین درگاه |
amount | اجباری | مبلغ تراکنش [ تومان ] |
callback | اجباری | آدرس برگشت [ نتیجه پرداخت به این آدرس ارسال می شود ] |
card_number | اختیاری | شماره کارت مجاز به پرداخت |
invoice_id | اختیاری | شماره فاکتور |
mobile | اختیاری | ذخیره شماره کارت در درگاه برای پرداخت های بعدی |
description | اختیاری | توضیحات |
# مرحله دوم : انتقال کاربر به صفحه پرداخت
در صورتی که اطلاعات به صورت صحیح ارسال شود , کد تراکنش در پاسخ این وب سرویس دریافت می شود . بعد از آن نیاز است تا جهت انجام عملیات پرداخت , کاربر را به همراه کد تراکنش دریافت شده به مسیر زیر هدایت نمایید.
# کد های خطا
کد | توضیحات |
---|---|
1- | amount نمی تواند خالی باشد |
2- | کد پین درگاه نمی تواند خالی باشد |
3- | callback نمی تواند خالی باشد |
4- | amount باید عددی باشد |
5- | amount باید بزرگتر از ۱۰۰ باشد |
6- | کد پین درگاه اشتباه هست |
7- | ایپی سرور با ایپی درگاه مطابقت ندارد |
8- | transid نمی تواند خالی باشد |
9- | تراکنش مورد نظر وجود ندارد |
10- | کد پین درگاه با درگاه تراکنش مطابقت ندارد |
11- | مبلغ با مبلغ تراکنش مطابقت ندارد |
12- | بانک وارد شده اشتباه میباشد |
13- | درگاه غیر فعال است |
14- | درگاه برروی سایت دیگری درحال استفاده است |
نمونه کد PHP
<?php
$data = [
'pin' => 'YourGatewayPinCode',
'amount' => 'YourGatewayPinCode',
'callback' => 'https://mysite.com/verify.php',
'card_number' => '1111222233334444',
'mobile' => '09123456789',
'invoice_id' => '123456',
];
$data = json_encode($data);
$ch = curl_init('https://panel.aqayepardakht.ir/api/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);
if ($result && !is_numeric($result)) {
header('Location: https://panel.aqayepardakht.ir/startpay/' . $result);
} else {
echo "خطا";
}
نمونه کد Laravel
<?php
namespace App\Http\Controllers;
class PayController extends Controller
{
public function pay()
{
$data = [
'pin' => 'YourGatewayPinCode',
'amount' => 20000,
'callback' => 'https://mysite.com/verify',
];
$client = new \GuzzleHttp\Client();
$response = $client->post("https://panel.aqayepardakht.ir/api/create", [
'http_errors' => false,
'headers' => [
'content-type' => 'application/json',
],
'body' => json_encode($data)
]);
$transaction_id = $response->getBody()->getContents();
if (
$response->getStatusCode() == 200
&&
!is_numeric($transaction_id)) {
return redirect("https://panel.aqayepardakht.ir/startpay/{$transaction_id}");
} else {
//خطا
return $response->getBody()->getContents();
}
}
}
نمونه کد Python
import requests
data = {
'pin' : 'YourGatewayPinCode',
'amount' : 20000,
'callback' : 'https://mysite.com/verify',
'card_number' : '1111222233334444',
'mobile' : '09123456789',
'invoice_id' : '123456',
}
response = requests.post('https://panel.aqayepardakht.ir/api/create', data = data)
if response.status_code = 200 and not response.text.replace('-','').isdigit():
# انتقال به مسیر
print('https://panel.aqayepardakht.ir/startpay/'+response.text)
else:
print('خطا')