NAV
PHP Laravel

مقدمه

به بخش مستندات وب سرویس های میلیونا خوش آمدید.

از طریق مستندات پیش رو می توانید اقدام به راه اندازی درگاه پرداخت میلیونا بر روی وبسایت خود نمایید. جهت دریافت درگاه پرداخت اینترنتی به وبسایت میلیونا مراجعه نمایید.


به صورت کلی یک فرآیند پرداخت شامل مراحل زیر می باشد:


آدرس تمامی وب سرویس های میلیونا با آدرس زیر شروع خواهند شد:

https://api.milyoona.com


برای تست وب سرویس ها می توانید مقدار زیر را در فیلد terminal قرار دهید:

milyoona

موارد قابل توجه:

دریافت توکن

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 خطای داخلی سرور