مقدمه
به بخش مستندات وب سرویس های میلیونا خوش آمدید.
از طریق مستندات پیش رو می توانید اقدام به راه اندازی درگاه پرداخت میلیونا بر روی وبسایت خود نمایید. جهت دریافت درگاه پرداخت اینترنتی به وبسایت میلیونا مراجعه نمایید.
به صورت کلی یک فرآیند پرداخت شامل مراحل زیر می باشد:
- مرحله اول: ارسال اطلاعات پرداخت و دریافت توکن
- مرحله دوم: انتقال کاربر به صفحه پرداخت با استفاده از توکنی که در مرحله اول دریافت نمودید
- مرحله سوم: تایید نهایی تراکنش
- مرحله چهارم: پیگیری تراکنش
آدرس تمامی وب سرویس های میلیونا با آدرس زیر شروع خواهند شد:
https://api.milyoona.com
برای تست وب سرویس ها می توانید مقدار زیر را در فیلد terminal
قرار دهید:
milyoona
موارد قابل توجه:
- توکن های دریافتی در مرحله اول تنها 20 دقیقه اعتبار خواهند داشت و شما در این زمان می توانید کاربر را به صفحه پرداخت هدایت نمایید و در غیر این صورت می بایست توکن جدیدی دریافت کنید.
- توجه داشته باشید که می توانید پیگیری تراکنش را قبل از مرحله سوم نیز انجام دهید.
- توجه داشته باشید در صورت عدم تایید تراکنش (مرحله سوم) پس از گذشت حداکثر 1 ساعت وجه پرداختی به حساب مبدا بازگشت داده خواهد شد.
دریافت توکن
Request:
$data = [
'terminal' => $terminal,
'amount' => $amount,
'mobile' => $mobile,
'national_code' => $national_code,
'callback_url' => $callback_url,
'order_id' => $order_id,
'card_no' => $card_no,
'description' => $description,
];
$request = curl_init('https://api.milyoona.com/payment/token');
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLINFO_HEADER_OUT, true);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
);
$response = curl_exec($ch);
curl_close($ch);
dd($response)
$data = [
'terminal' => $terminal,
'amount' => $amount,
'mobile' => $mobile,
'national_code' => $national_code,
'callback_url' => $callback_url,
'order_id' => $order_id,
'card_no' => $card_no,
'description' => $description,
];
$client = new \GuzzleHttp\Client();
$response = $client-post("https://api.milyoona.com/payment/token", [
'headers' => [
'content-type' => 'application/json',
],
'body' => json_encode($data)
]);
dd($response->getBody())
درخواست توکن می بایست به مسیر زیر از طریق متد POST
ارسال گردد:
https://api.milyoona.com/payment/token
پارامترهای ورودی:
نام فیلد | اجباری/اختیاری | توضیحات |
---|---|---|
terminal | اجباری | این مقدار بعد از دریافت ترمینال در پنل کاربری شما قابل مشاهده خواهد بود. |
amount | اجباری | مبلغ تراکنش می بایست به تومان ارسال شود. |
mobile | اختیاری | در صورت ارسال شماره موبایل پرداخت کننده، کاربر قادر خواهد بود شماره کارت های ذخیره شده خود را در درگاه پرداخت مشاهده نماید. |
national_code | اختیاری | در صورت ارسال کدملی پرداخت کننده، شماره کارت پرداخت کننده می بایست متعلق به کد ملی ارسالی باشد. |
callback_url | اجباری | اطلاعات پرداخت بعد از انجام تراکنش به این لینک ارسال می شود. |
order_id | اختیاری | در صورت ارسال شماره سفارش می توانید از این شماره در پیگیری تراکنش ها استفاده نمایید. |
card_no | اختیاری | در صورت ارسال شماره کارت، کاربر تنها قادر به پرداخت وجه با آن شماره کارت خواهد بود. |
description | اختیاری | توضیحات ارسالی در پنل کاربری میلیونا به شما نمایش داده خواهد شد. |
پاسخ دریافتی در صورت موفق آمیز بودن درخواست:
نام فیلد | توضیحات |
---|---|
token | توکن یکتا تراکنش به طول 40 کاراکتر |
request_id | شناسه یکتا تراکنش جهت پیگیری تراکنش |
initiated_at | تاریخ و زمان شروع تراکنش به میلادی |
expires_in | تاریخ و زمان انقضاء توکن دریافتی به میلادی |
هدایت کاربر به درگاه پرداخت
Redirect:
header('Location: https://api.milyoona.com/ipg/' . $token);
return redirect("https://api.milyoona.com/ipg/" . $token);
در این مرحله با استفاده از توکنی که در مرحله قبل دریافت نمودید، می توانید کاربر را به صفحه درگاه پرداخت اینترنتی هدایت نمایید.
کاربر می بایست با متد GET
توسط آدرس زیر به درگاه پرداخت منتقل شود.
https://api.milyoona.com/ipg/{token}
بعد از بازگشت کاربر از صفحه پرداخت مقادیر زیر به callback_url شما توسط متد GET ارسال خواهند شد:
نام فیلد | توضیحات |
---|---|
token | توکن یکتا تراکنش به طول 40 کاراکتر |
status | شامل مقدار OK یا NOK |
اگر مقدار status برابر با OK باشد، می بایست جهت تکمیل فرآیند پرداخت مرحله تایید تراکنش را انجام دهید و در صورتی که این مقدار برابر با NOK باشد بدین معناست که عملیات پرداخت ناموفق بوده و دیگر نیازی به انجام مراحل بعدی نیست.
تایید تراکنش
Request:
$data = [
'terminal' => $terminal,
'token' => $token,
];
$request = curl_init('https://api.milyoona.com/payment/verify');
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
curl_setopt($request, CURLINFO_HEADER_OUT, true);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
);
$response = curl_exec($ch);
curl_close($ch);
dd($response)
$data = [
'terminal' => $terminal,
'token' => $token,
];
$client = new \GuzzleHttp\Client();
$response = $client-post("https://api.milyoona.com/payment/verify", [
'headers' => [
'content-type' => 'application/json',
],
'body' => json_encode($data)
]);
dd($response->getBody())
درخواست تایید تراکنش می بایست به مسیر زیر از طریق متد POST
ارسال گردد:
https://api.milyoona.com/payment/verify
پارامترهای ورودی:
نام فیلد | اجباری/اختیاری | توضیحات |
---|---|---|
terminal | اجباری | این مقدار بعد از دریافت ترمینال در پنل کاربری شما قابل مشاهده خواهد بود. |
token | اجباری | توکن یکتا تراکنش به طول 40 کاراکتر |
پاسخ دریافتی در صورت موفق آمیز بودن درخواست:
نام فیلد | توضیحات |
---|---|
token | توکن یکتا تراکنش به طول 40 کاراکتر |
amount | مبلغ تراکنش |
request_id | شناسه یکتا تراکنش |
order_id | شماره سفارش ارسال شده از سمت پذیرنده |
fee | مبلغ کارمزد به تومان |
card_number | شماره کارت پرداخت کننده به صورت ماسک شده |
mobile | شماره موبایل پرداخت کننده در صورت ارسال |
national_code | کد ملی پرداخت کننده در صورت ارسال |
paid_at | تاریخ انجام تراکنش |
description | توضیحات پذیرنده |
status | وضعیت تراکنش |
پیگیری تراکنش
درخواست پیگیری تراکنش می بایست به مسیر زیر از طریق متد POST
ارسال گردد:
https://api.milyoona.com/payment/trace
توجه داشته باشید مرحله سوم یعنی تایید تراکنش فقط یک بار قابل فراخوانی خواهد بود و در صورتی که به هر دلیل می خواهید اطلاعات تراکنش را مجددا دریافت نمایید از طریق این مرحله قادر به انجام این کار خواهید بود.
تمامی مقادیر ارسالی و دریافتی در این مرحله همانند مرحله سوم می باشد.
جدول خطاها
جدول خطاهای احتمالی در انجام تراکنش:
کد خطا | توضیحات |
---|---|
0 | عملیات با موفقیت انجام شد |
1 | تراکنش ناموفق |
2 | مبلغ تراکنش مجاز نیست |
3 | عدم تطابق شماره کارت با پرداخت کننده |
4 | تراکنش استفاده شده |
5 | تراکنش یکبار تائید شده است |
6 | ترمیال مسدود است |
10 | از انجام تراکنش صرف نظر شد |
11 | پذیرنده نامعتبر است |
24 | عدم تطابق کد ملی خریدار با دارنده کارت |
25 | توکن معتبر نمی باشد |
26 | انجام تراکنش با یک کارت خاص از طرف پذیرنده محدود شده است |
27 | ترمینال غیر فعال است |
28 | آیپی معتبر نمی باشد |
29 | مهلت تایید تراکنش به اتمام رسیده است |
30 | مهلت استفاده از کد تخفیف به اتمام رسیده است |
31 | محصول مورد نظر شما به اتمام رسیده است |
400 | خطا در اطلاعات ارسالی |
500 | خطای داخلی سرور |