...
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "login",
"next_page_action": "http://192.168.1.118:8095/send/otp",
"next_page_data": {
"login": {
"user_info": {
"loa": "LEVEL_2_2",
"fields": {
"mobile_number": {
"priority": 1,
"value": "09127998974",
"status": "hidden"
},
"national_number": {
"priority": 2,
"value": "0016873408",
"status": "present"
}
}
},
"client_info": {
"scope_titles": "تلفن همراه، کد ملی",
"client_name": "ايران",
"client_id": "abara"
},
"general_info": {
"download_address": "http://192.168.1.118:8095/download",
"deprecate_address": "http://192.168.1.118:8095/deprecate/"
}
}
},
"ready_for_final_authenticate": false
} |
...
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "otp",
"next_page_action": "http://192.168.1.118:8095/authenticate/first-page",
"next_page_data": {
"otp": {
"code_expire_time": "45",
"total_code_expire_time":"60",
"otp_address": "http://192.168.1.118:8095/send/otp",
"mobile_number": "09121234567",
"remaining_wrong_attempt": 3
}
},
"ready_for_final_authenticate": false
} |
...
- فیلد next_page : صفحه بعدی otp را نشان میدهد .
- فیلد next_page_action : آدرسی که دکمه موجود در صفحه otp برای واردنمودن کد دریافت شده توسط کاربر را نشان میدهد
- فیلد next_page_data : اطلاعاتی که در صفحه آتی (اینجا otp) است را مانند شماره موبایل، مدت زمان انقضا کد ارسال ( بر اساس ثانیه ) و کل مدت زمان انقضا کد (بر اساس ثانیه) و آدرس دکمه ارسال مجدد(otp_address) و تعداد دفعات اشتباه مجاز (remaining_wrong_attempt) که در متن "در صورت اشتباه وارد کردن به صفحه ussd ارسال میشوید" باید به صورت عدد نوشتاری قرار دادهشود در نسخههای قبلی از littleNumber استفاده میشد را نشان میدهد.
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "next_page": "push_otp", "next_page_action": "http://192.168.1.118:8095/authenticate/first-page", "next_page_data": { "push_otp": { "code_expire_time": "173", "total_code_expire_time":"180", "otp_address": "http://192.168.1.118:8095/send/otp", "push_code_value": "108460", "mobile_number": "09121234567", "push_code_provider": "*725#", "push_otp_check_status_interval": 2, "dial_number":"*725*108460#" } }, "ready_for_final_authenticate": false, "error": { "reason": "کد اشتباه ارسال شده و تعداد دفعات خطا 1 میباشد" } } |
...
Code Block | ||||
---|---|---|---|---|
| ||||
{ "next_page": "login", "next_page_data": { "login": { "user_info": { "mobile_numberloa": "09124958820LEVEL_2_2", "national_numberfields": "0050390503",{ "loa "mobile_number": "LEVEL_2_2", { "mobile_number_input_status "priority": "hidden"1, }, "client_infovalue": { "09127998974", "scope_titlesstatus": "تلفنhidden" همراه، کد ملی", "client_name": "ايران"}, "clientnational_idnumber": "abara"{ }, "general_infopriority": { 2, "download_addressvalue": "http://192.168.1.118:8095/download0016873408", "deprecate_addressstatus": "http://192.168.1.118:8095/deprecate/" present" } } }, "ready_for_final_authenticate": false, "errorclient_info": { "reason": "این شماره موبایل با کدملی سازگار نمی باشد. تعداد دفعات خطا 1" } } |
در این حالت کاربر صفحه لاگین را میبیند و در آنجا پیام خطا toast میشود و اطلاعات موردنیاز هر صفحه در قسمت next_page_data قرار میگیرد.
پاسخ خطا (در صورتی که کد پیامکی اشتباه زده باشد)
Code Block | ||||
---|---|---|---|---|
| ||||
{ "scope_titles": "تلفن همراه، کد ملی", "client_name": "ايران", "nextclient_pageid": "otp"abara" }, "next_page_action "general_info": { "download_address": "http://192.168.1.118:8095/authenticate/first-pagedownload", "next_page_data": { "otpdeprecate_address": {"http://192.168.1.118:8095/deprecate/" "code_expire_time": "20", } } }, "otp_addressready_for_final_authenticate": "http://192.168.1.118:8095/send/otp"false, "error": { "mobile_numberreason": "09124958820" این شماره موبایل با کدملی سازگار } }, "ready_for_final_authenticate": false, "error": { "reason": "کد به درستی وارد نشده استنمی باشد. تعداد دفعات خطا 1" } } |
در این حالت کاربر در صفحه otp میماند و پیام خطا نشان داده میشودلاگین را میبیند و در آنجا پیام خطا toast میشود و اطلاعات موردنیاز هر صفحه در قسمت next_page_data قرار میگیرد.
پاسخ درست خطا (حالتی که مرحله بعد صفحه تشخیص چهره در صورتی که کد پیامکی اشتباه زده باشد)
Code Block | ||||
---|---|---|---|---|
| ||||
{ "next_page": "facedetectionotp", "next_page_action": "http://192.168.1.118:8095/authenticate/facefirst-decetionpage", "next_page_data": { "facedetectionotp": { ... "code_expire_time": "20", "total_code_expire_time":"60", } }, "otp_address": "http://192.168.1.118:8095/send/otp", "ready_for_final_authenticatemobile_number": false } |
در این حالت کاربر به صفحه تشخیص چهره هدایت میشود
اگر پاسخ با وضعیت 422 دریافت شد کاربر به آدرس موجود در بدنه پاسخ هدایتشود.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"redirect_address":"https://google.com"
} |
سرویس login نهایی
آدرس سرویس : login/
بدنه درخواست : ندارد
متد : POST
نوع محتوا : application/x-www-form-urlencoded
پاسخ : اگر پاسخ با وضعیت 200 دریافت شد نشان دهندهی موفقیت آمیز بودن عملیات است و کاربر باید به آدرسی که در بنده درخواست است ریدایرکت شود ولی اگر پاسخ دیگری دریافت شد نشان دهندهی خطاست وهمانند پاسخهای خطای سرویسهای قبلی با آن رفتار شود.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"redirect_address" : "http://192.168.1.118:8095/...."
} |
اگر پاسخ با وضعیت 422 دریافت شد کاربر به آدرس موجود در بدنه پاسخ هدایتشود.
"09124958820"
}
},
"ready_for_final_authenticate": false,
"error": {
"reason": "کد به درستی وارد نشده است. تعداد دفعات خطا 1"
}
} |
در این حالت کاربر در صفحه otp میماند و پیام خطا نشان داده میشود.
پاسخ درست (حالتی که مرحله بعد صفحه تشخیص چهره باشد)
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "facedetection",
"next_page_action": "http://192.168.1.118:8095/authenticate/face-decetion",
"next_page_data": {
"facedetection": {
...
}
},
"ready_for_final_authenticate": false
} |
در این حالت کاربر به صفحه تشخیص چهره هدایت میشود
اگر پاسخ با وضعیت 422 دریافت شد کاربر به آدرس موجود در بدنه پاسخ هدایتشود.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"redirect_address":"https://google.com"
} |
سرویس login نهایی
آدرس سرویس : login/
بدنه درخواست : ندارد
متد : POST
نوع محتوا : application/x-www-form-urlencoded
پاسخ : اگر پاسخ با وضعیت 200 دریافت شد نشان دهندهی موفقیت آمیز بودن عملیات است و کاربر باید به آدرسی که در بنده درخواست است ریدایرکت شود ولی اگر پاسخ دیگری دریافت شد نشان دهندهی خطاست وهمانند پاسخهای خطای سرویسهای قبلی با آن رفتار شود.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"redirect_address" : "http://192.168.1.118:8095/...."
} |
اگر پاسخ با وضعیت 422 دریافت شد کاربر به آدرس موجود در بدنه پاسخ هدایتشود.
Code Block | ||||
---|---|---|---|---|
| ||||
{
"redirect_address":"https://google.com"
} |
سرویس zoom-id-init
آدرس: /authenticate/face-detection/zoom-id-init
توضیح: این سرویس باید در ابتدای لود شدن فرم zoomid فراخوانی شود.
بدنه درخواست: ندارد
متد: POST
محتوای پاسخ:
مقدار is_enrolled مشخصکننده نمایش/عدم نمایش inputهای تاریخ تولد و سریال کارت ملی در این فرم است. در صورت true بودن این مقدار، نیازی به نمایش این inputها نیست.
مقدار ramaining_wrong_attemp نیز تعداد خطای ممکن ثبتنام/تطابق چهره را مشخص میکند.
مقدار next_page_action در صورت true بودن is_enrolled برابر/authenticate/face-detection/zoom-id و در غیر این صورت برابر /authenticate/face-detection/register خواهد بود
نمونه پاسخ موفق در صورت enrolled نبودن:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "zoomid",
"next_page_action": "/authenticate/face-detection/register",
"next_page_data": {
"zoomid": {
"is_enrolled": false,
"remaining_wrong_attempt": 3
}
},
"ready_for_final_authenticate": false
} |
نمونه پاسخ موفق در صورت enrolled بودن:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "zoomid",
"next_page_action": "/authenticate/face-detection/zoom-id",
"next_page_data": {
"zoomid": {
"is_enrolled": true,
"remaining_wrong_attempt": 3
}
},
"ready_for_final_authenticate": false
} |
نمونه پاسخ ناموفق (در صورتی که فراخوانی سرویس zoomid با خطای Timeout مواجه شود):
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "zoomid",
"next_page_action": "/authenticate/face-detection/zoom-id-init",
"next_page_data": {
"zoomid": {
"remaining_wrong_attempt": 3
}
},
"ready_for_final_authenticate": false,
"error": {
"reason": "سرور تشخیص چهره در دسترس نیست"
}
} |
نمونه پاسخ ناموفق (در صورتی که فراخوانی سرویس zoomid با خطای ناشناخته مواجه شود):
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "error",
"ready_for_final_authenticate": false,
"error": {
"reason": "خطا در فراخوانی سرویس تشخیص چهره"
}
} |
سرویس ثبت نام zoom-id
آدرس: /authenticate/face-detection/register
توضیح: این سرویس در صورتی مورد استفاده قرار میگیرد که در پاسخ zoom-id-init مقدار is_enrolled برابر false باشد و نیاز به ثبت نام کاربر باشد. تاریخ تولد و سریال کارت ملی کاربر در بدنه این درخواست قرار میگیرند.
بدنه درخواست: به صورت application/x-www-form-urlencoded شامل: تاریخ تولد با نام birth_date به صورت timestamp و سریال کارت ملی با نام national_serial به صورت رشته.
متد: POST
محتوای پاسخ: در صورتی که is_enrolled در پاسخ true باشد به معنی موفقیت در ثبت نام کاربر است. در صورت خطا هم remaining_wrong_attempt تعداد خطای ممکن باقیمانده را مشخص میکند.
نمونه پاسخ موفق:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "zoomid",
"next_page_action": "/authenticate/face-detection/zoom-id",
"next_page_data": {
"zoomid": {
"is_enrolled": true,
"remaining_wrong_attempt": 3
}
},
"ready_for_final_authenticate": false
} |
نمونه پاسخ ناموفق در صورت تطابق نداشتن اطلاعات کاربر:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "zoomid",
"next_page_action": "/authenticate/face-detection/register",
"next_page_data": {
"zoomid": {
"is_enrolled": false,
"remaining_wrong_attempt": 2
}
},
"ready_for_final_authenticate": false,
"error": {
"reason": "اطلاعات کاربر تطابق ندارند"
}
} |
نمونه پاسخ ناموفق در صورت بیش از حد اشتباه وارد کردن اطلاعات کاربر با کد ۴۲۲ که در این حالت کاربر باید به آدرس موجود در پاسخ هدایت شود:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"redirect_address": "http://divar.com:9000/buy?error=too_many_attempt"
} |
سرویس احراز هویت zoom-id
آدرس: /authenticate/face-detection/zoom-id
توضیح: این سرویس برای تعیین وضعیت احراز هویت کاربر پس از فراخوانی سرویس تطابق چهره توسط ماژول zoomid استفاده میشود. در callback فراخوانی سرویس تطابق چهره ماژول zoomid، با فراخوانی این سرویس وضعیت احراز هویت کاربر بررسی میشود.
بدنه درخواست: ندارد
متد: POST
محتوای پاسخ: در صورتی که از قبل کاربر با موفقیت سرویس تطابق چهره را فراخوانی کرده باشد، مشابه سایر سرویسهای احراز هویت، مقدار ready_for_final_authentication با مقدار true برگردانده میشود. در غیر این صورت هم مقدار emaining_wrong_attempt تعداد خطای ممکن باقیمانده را مشخص میکند.
نمونه پاسخ موفق:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "zoomid",
"next_page_action": "/login",
"ready_for_final_authenticate": true
} |
نمونه پاسخ ناموفق در صورتی که چهره کاربر تطابق نداشته باشد:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"next_page": "zoomid",
"next_page_action": "/authenticate/face-detection/zoom-id",
"next_page_data": {
"zoomid": {
"is_enrolled": true,
"remaining_wrong_attempt": 3
}
},
"ready_for_final_authenticate": false
} |
نمونه پاسخ ناموفق در صورت اتمام تلاشهای ممکن برای تطابق چهره با کد ۴۲۲ که در این حالت کاربر باید به آدرس موجود در پاسخ هدایت شود:
Code Block | ||||
---|---|---|---|---|
| ||||
{
"redirect_address": "http://divar.com:9000/buy?error=too_many_attempt | ||||
Code Block | ||||
| ||||
{
"redirect_address":"https://google.com"
} |