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

جهت استفاده تستی از وب سرویس میتوانید از پین 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('خطا')