تایید شارژ مستقیم دو مرحله ای
آدرس سرویس: POST https:/carbon/v2.1/charge_service/topup_confirm
شرح
این سرویس جهت دریافت پین کد شارژ رزرو شده مورد استفاده قرار می گیرد.
نکات بسیار مهّم :
1) شرط موفق بودن تراکنش دریافت کد 0 در فیلد Status و موجود بودن مقدار عددی صحیح در فیلد tracking_number و خالی بودن فیلد errors میباشد.
2) در صورتی که کد پاسخ دریافت شده در فیلد Status غیر 0 باشد و فیلد error_code داخل شی errors عدم قطعیت در خصوص وضعیت تراکنش را اعلام کند لازم است با استفاده از سرویسهای استعلام وضعیت درخواست مقدار صحیح تراکنش استعلام گردد. مانند کد خطای 5000 و 3000 و ... (کدهای خطایی که نیازمند استعلام وضعیت تراکنش میباشند در جدول شماره 2 مشخص شدهاند. «ستون فراخوانی سرویس استعلام»)
3) باید توجه داشته باشیم که در صورت هر پاسخی غیر از 0 در فیلد Status حتماً فیلد errors و فیلد error_code داخل آن دارای مقدار صحیح خواهد بود.
نمونه مقدار فیلد errors به شکل ذیل است:
"errors": {
"error_code": "8002",
"error_description": "Transaction failed : Provider Error",
"reference_name": "Mobile no is inactive or not registered.",
"original_value": "charge error"
}
لذا در صورت دریافت هرگونه پاسخ غیر از 0 در فیلد Status که مقدار فیلد errors شامل مقدار نباشد و یا فیلد error_code داخل شی errors مقدار نداشته باشد باید به عنوان پاسخ غیر قطعی در نظر گرفته شود و برای مشخص شدن وضعیت صحیح تراکنش میبایست سرویس استعلام وضعیت تراکنش فراخوانی گردد.
Headers
مقادیر زیر باید در هدر قرار بگیرد
Authorization : Bearer {Token}
clientAddress : client IP
توجه : برای دریافت توکن مربوطه به بخش توکن مراجعه فرمایید
توضیحات
- Authorization: در این قسمت توکن دریافت شده از سرویس توکن را وارد نمایید
- clientAddress: آی پی مشتری نهایی که سرویس را دریافت کرده است .
-
request_number(نوع داده عددی):(اجباری) این شناسه جهت پیگیری های بعدی مورد استفاده قرار می گیرد و پیشنهاد میگردد یه شناسه یکتا به ازای هر درخواست توسط سامانه مشتری تولید و به این سرویس ارسال گردد. سامانه ابری کربن هیچ کنترلی بر روی عدم تکراری بودن این مقدار انجام نمی دهد.
-
reserve_number (نوع داده عددی):(اجباری) شماره دریافتی از سرویس مربوط به رزرو (توجه شود مدت زمان انقضا شماره رزرو 5 دقیقه است)
Parameters
نمونه درخواست:
curl --location --request POST 'https:/carbon/v2.1/charge_service/topup_confirm' \
--header 'Authorization: Bearer ....' \
--header 'Content-Type: application/json' \
--data-raw '{
"reserve_number": "....",
"request_number":"...."
}
جواب موفق:
{
"status": "0",
"message": "تراکنش با موفقیت انجام شد",
"timestamp": "2023-01-07 01:41:42.499",
"tracking_number": "234234234",
”request_number”: "24324544",
"result": {
"reference_number": "...."
},
"transaction_details": {
"available_wallet_balance": "9343434",
"provider_name": "....",
"service_price": "9900",
"curency": "IRR",
"remaining_number_of_calls": "9908",
"remaining_number_of_calls_day": "9908"
},
"errors": {}
}
جواب ناموفق:
{
"status": "1",
"message": "تراکنش ناموفق",
"timestamp": "....",
"tracking_number": "....",
”request_number”: "....",
"result": {},
"transaction_details": {},
"errors": {
"error_code": "8002",
"error_description": "Transaction failed : Provider Error",
"reference_name": "Mobile no is inactive or not registered.",
"original_value": "charge error"
}
}
status: عدد 0 به معنی موفق و عدد 1 به معنی ناموفق می باشدmessage: پاسخ از طرف سرویس سامانه ابری کربنtimestamp: زمان و تاریخ درخواستrequest_number: شماره پیگیری ارسال شده در زمان فراخوانیtracking_number: شماره پیگیری ایجاد شده توسط سامانه ابری کربن جهت بررسی های بعدیresult: آبجکتی از پاسخ سرویس شامل:reference_number: شماره مرجعservice_price: قیمت سرویسerrors: جزییات خطاerror_code: کد مربوط به خطایی که پیش آمده استerror_description: متن خطاreference_name: اطلاعات تکمیلی خطاoriginal_value: اطلاعات تکمیلی خطا
در صورت بروز خطا در درخواست :