در صورتی که پرداخت کاربر با موفقیت انجام شود کاربر به آدرس ارائه شده برای مقدار callback برگشت داده می شود. در این صفحه مالک وب سایت می تواند از طریق تابع request_status وضعیت فاکتور را بررسی کرده و در صورت موفقیت آمیز بودن پرداخت، نسبت به ارائه خدمات به مشتری اقدام نماید. به منظور بررسی وضعیت فاکتور، می بایست از طریق تابع file_get_contents در PHP و یا توابع مشابه در زبان های برنامه نویسی دیگر، اطلاعات زیر را برای آدرس وب سرویس که در زیر نمایش داده شده است POST نمایید.
https://digidargah.com/action/ws/request/status
api_key
String
پس از ثبت وب سایت تان، این کلید به صورت خودکار از طرف سایت تولید و در اختیار شما قرار داده می شود. این کلید یکتا بوده و برای هر وب سایت به صورت اختصاصی تولید می شوند.
order_id
String
یک مقدار یکتاست که در طرف وب سایت شما و برای ارجا به سفارش ایجاد می شود. این عبارت می بایست با عبارت ارسال شده برای قدم اول یکسان باشد.
request_id
String
یک مقدار یکتاست که در قدم دوم از طرف وب سرویس برگشت داده شده است. در قدم دوم می بایست این مقدار را ذخیر نمایید تا در این قدم بتوانید از طریق آن وضعیت فاکتور را بررسی نمایید.
نمونه کد
ارسال اطلاعات به درگاه
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://digidargah.com/action/ws/request/status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_MAXREDIRS => 5,
CURLOPT_TIMEOUT => 60,
CURLOPT_USERAGENT => $_SERVER["HTTP_USER_AGENT"],
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
"api_key" => "YOUR_API_KEY",
"order_id" => "1733281583",
"request_id" => "674fc72f745e7"
]),
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error: " . $err;
} else {
$result = json_decode($response, true);
var_dump($result);
}
در صورتی که داده های ارسالی معتبر باشند، مقداری مشابه زیر برگشت داده می شود.
array(
"status" => "success",
"request_id" => "674fc72f745e7",
"order_id" => "1733281583",
"amount_value" => "100000",
"amount_currency" => "irt"
);
در صورتی که داده های ارسالی معتبر نباشند و یا خطایی از طرف وب سرویس وجود داشته باشد، مقداری مشابه زیر برگشت داده می شود.
array(
"status" => "failed",
"respond" => "پیام خطا با ذکر جزئیات مرتبط با اطلاعات نامعتبری که ارسال شده است.",
"error_no" => "شماره خطا"
);