مقدمه
جهت مجهز کردن سایت و فروشگاه خودتان به سامانه پرداخت آنلاین ،
ملزم به ارتباط با api سامانه میباشید .
پروتکل پیاده سازی این سامانه براساس JSON API میباشد که یکی از مزیت هایش استفاده ساده در تمامی زبان های برنامه نویسی میباشد .
کلیه پارامتر ها ارسالی و دریافتی به وبسرویس ، بر اساس فرمت json میباشد . همچنین کلیه دیتاهای ارسالی به وبسرویس باید بصورت POST شده باشند . الزامی به ارسال هدر application/json نیست .
فرآیند خرید :
برای انجام فرآیند خرید ، باید کاربر را در فروشگاه /سایتتان به مرحله پرداخت آنلاین برسانید و سپس به api وصل بشید
برای شروع فرآیند خرید باید به متد request متصل بشید و پارامترهای مربوطه را ارسال کنید ، چنانچه عملیات موفقیت آمیز باشد result برابر 1 برگشت داده میشود و همچنین کد پیگیری vprescode و فرم ارسال به درگاه بانک .
کد vprescode را در دیتابیس خود ذخیره کنید ، برای عملیات وریفای به این کد نیاز هست فرم html ارسال به بانک را در بخش مناسب نشان دهید تا کاربر با کلیک برروی دکمه پرداخت موجود در فرم به بانک هدایت شود و عملیات پرداخت را انجام دهد .
بعد از پرداخت کاربر به آدرس کال بکی که ست کرده ای برگشت داده میشود و همراه آن پارامترهایی از بانک فرستاده میشود در این مرحله باید شما به متد verify از وبسرویس متصل بشوید و پارامترهای الزامی این متد را وارد کرده و نتیجه را بررسی کنید .
پارامترهای الزامی شامل مبلغ خرید ، کد vprescode ، کد order_id که قبلا وارد کرده اید pin درگاه و همچنین کلیه پارامترهای دریافتی از بانک میباشد .
بعد از فراخوانی این متد چنانچه result برابر 1 بود یعنی عملیات با موفقیت انجام شده و مبلغ به حسابتان واریز شده است .
نکته مهم : چنانچه این متد را فراخوانی نکنید مبلغ بصورت خودکار بعد از چند دقیقه به حساب پرداخت کننده عودت میگردد .
متد request
این متد متد مرحله اول انجام تراکنش هست ، ابتدا این متد را
فراخوانی کنید ،
پارامتر | الزامی|اختیاری | مقادیر مجاز | مثال | توضیحات |
pin | الزامی | string | gtd1u16d960522r809 | پین اتصال به درگاه ، از پنل کاربری در سایت در لیست درگاهها این پین را بردارید |
price | الزامی | number | 1000 | مبلغ پرداختی به تومان |
callback | الزامی | string | http://example.org/callback?id=1 | آدرس کال بک فروشگاه که باید منطبق با آدرس ثبت شده در داخل پنل کاربری باشد |
order_id | الزامی | number | 1 تا 999999999 | شماره فاکتور اعلامی شما |
description | اختیاری | string | -- | توضیحاتی در رابطه با تراکنش که در پنل ثبت میگردد |
name | اختیاری | string | -- | نام پرداخت کننده |
اختیاری | string | info@example.org | ایمیل پرداخت کننده ، جهت اطلاع رسانی | |
mobile | اختیاری | string | 9180000000 | شماره موبایل پرداخت کننده ، جهت اطلاع رسانی |
ip | اختیاری | string | 127.0.0.1 | آی پی شخص پرداخت کننده ، جهت پیگیری |
$data_string = json_encode(array(
'pin'=> 'yourpin',
'price'=> '1000',
'callback'=> 'http://localhost/a_test/t12.php',
'order_id'=> '459652',
'email'=> 'buyer@example.org',
'description'=> 'test',
'name'=> 'username',
'tell'=> '09111111111',
'ip'=> '192.168.1.1',
));
$ch = curl_init('https://vandapardakht.ir/Request');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
$result = curl_exec($ch);
curl_close($ch);
$json = json_decode($result,true);
print_r($json);
نمونه مثال برای تراکنش موفق
{
"result": 1,
"vprescode": "4528u16g14d960523r3191",
"form": "<form name='payment' action='someaction' method='POST'><input type='hidden' name='Refid' value='somevalue'><input type=submit value='Pay'><\/form>",
}
نمونه خروجی تراکنش ناموفق {
"result": -20,
}
متد verify
بعد از انجام دادن فرآیند پرداخت در صفحه پرداخت بانک ، کاربر به آدرس
کال بک شما بازگشت داده میشود که همراه آن یک سری پارامتر از بانک
ارسال میگردد . اسم این پارامترها و متد نحوه برگشت در خروجی
bank_callback_details متد request توضیح داده شد .
اما در هر صورت میتوانید کلیه پارامتر های POST و GET شده به کال بک
سایت را ارسال کنید .
بعد از فراخوانی متد verify چنانچه مقدار result برابر 1 باشد مبلغ به
حسابتان افزوده میگردد در غیر اینصورت کد خطای لازم نشان داده میشود
پارامترهایی که باید به متد verify ارسال کنید به شرح زیر است
پارامتر | الزامی|اختیاری | مقادیر مجاز | مثال | توضیحات |
pin | الزامی | string | gtd1u16d960522r809 | پین اتصال به درگاه ، از پنل کاربری در سایت در لیست درگاهها این پین را بردارید |
price | الزامی | number | 1000 | مبلغ پرداختی به تومان |
order_id | الزامی | number | 1 تا 999999999 | شماره فاکتور اعلامی شما |
vprescode | الزامی | string | 4528u16g14d960523r3191 | شناسه پیگیری vprescode که در مرحله request دریافت کرده اید |
bank_return | الزامی | json | { "SaleReferenceId":"20170814113803", "ResCode":"random_res_code_8", "card_pan":"1111111111111111", "State":"1" } | لیست مقادیر ارسالی از سمت درگاه بانک به سمت کال بک شما |
$bank_return = $_POST + $_GET ;
$data_string = json_encode(array (
'pin' => 'gtd1u16d960522r810',
'price' => 1000,
'order_id' => 1,
'vprescode' => '4531u16g14d960523r4166',
'Bank_return'=>$return_bank,
));
$ch = curl_init('https://vandapardakht.ir/Verify');
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
$result = curl_exec($ch);
curl_close($ch);
$json = json_decode($result,true);
print_r($json);
در تراکنش موفق مقدار result برابر 1 میباشد .
تراکنش موفق :
{
"result": 1,
}
تراکنش ناموفق {
"result": 0,
}
تراکنش خطا دار {
"result": -31,
}
توضیحات پارامترهای خروجی پارامتر | نوع | مثال | توضیحات |
result | number | 1 | اگر برابر 1 باشد یعنی عملیات وریفای موفقیت آمیز اگر برابر صفر باشد یعنی تراکنش وریفای نشده و درصورت کسر مبلغ ، از طرف بانک بعد از چند دقیقه مبلغ مرجوع میگردد در صورتیکه کد خطا یک عدد منفی بود ، یعنی خطایی رخ داده است . |