ارتباط و احراز هویت

احرازهویت و ارتباط با سرویس

احرازهویت و ارتباط با سرویس

روش احرازهویت جهت ارتباط پایدار و امن

ارتباط احراز هویت درخواست کننده ها در سامانه ایرپلاس در دو مرحله انجام میشود

مرحله اول دریافت توکن اختصاصی و مدت دار که جهت رمزنگاری بسته ها و بازگشایی توسط هسته مرکزی استفاده میشود که در بخش “دریافت توکن ارتباطی (دستی و خودکار)” انجام میگردد.

مرحله دوم شامل تولید توکن JWT با استفاده از اطلاعات درخواست کننده و توکن دریافت شده در مرحله اول انجام میگردد که در بخش “ساخت توکن ارتباطی JWT

احرازهویت و ارتباط با سرویس

دریافت توکن ارتباطی (دستی و خودکار)

جهت دریافت توکن سازمانی شما از دو روش میتوانید اقدام نمائید.

روش اول: روش دستی – اخذ از طریق پنل کاربری

در این روش شما میتوانید با مراجعه به بخش میز مدیریتی > توکن اتصال و گزینه ساخت توکن اقدام به دریافت توکن نمائید.

توجه داشته باشید که توکن های دریافتی در بازه زمانی های 1 روزه، 1هفته، 15روزه، 1 ماهه و 3 ماهه عرضه میگردد که همراه با توکن تاریخ انقضأ آن درج خواهد شد شما در هر زمان میتوانید توکن خود را دوباره تولید نمائید و توکن قبلی را منقضی نمائید.


روش دوم: دریافت از طریق API

عنوان وضعیت مقادیر توضیحات
Method اجباری GET متد ارسال درخواست
Domain اجباری نام دامنه ثبت شده در اتوماسیون  
Api Url اجباری دامنه هسته مرکزی سرویس  
Api version اجباری به نسخه فعلی سرویس API تلقی میشود که در قسمت پیش نیازهای اتوماسیون به ریز شرح داده شده است.  

احرازهویت و ارتباط با سرویس

سربرگ – Header

روش دوم: دریافت از طریق API


در این روش شما باید درخواست خود را از طریق لینک زیر ارسال فرمائید.

{{Api Url}}/token

HEADER
GET /api/reservation/{{Api version}}/token HTTP/1.1
Host: {{Your Host}}
Content-Type: application/json
Domain: {{Your Domain}}

API Url از طریق پنل کاربری قابل مشاهده خواهد بود

احرازهویت و ارتباط با سرویس

پاسخ صحیح – Response True

عنوان نوع مقادیر توضیحات
payload Object    
payload.token String توکن دریافت شده یک توکن 64 کاراکتری می باشد
payload.expiration String زمان انقضأ توکن این زمان بر اساس الگو ISO8601
YYYY-MM-DDTHH:mm:ss.SSSZ
meta Object    
meta.timestamp Timestamp   زمان تولید پاسخ   این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.

دریافت این پاسخ با Status Code 200 دریافت خواهد شد.

ISODateFormatDiagram.png

{
    "payload": {
        "token": "64 character token received",
        "expiration": "Expiration date and time - Gregorian calendar ISO8601"
    },
    "meta": {
        "timestamp": "Timestamp" // Timestamp
    }
}
احرازهویت و ارتباط با سرویس

پاسخ نادرست – Response False

عنوان نوع مقادیر توضیحات
error Object    
error.code Integer شماره خطا مربوطه جهت استعلام خطا میتوانید از طریق این لینک اقدام کنید.
meta Object    
meta.timestamp Timestamp   زمان تولید پاسخ   این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.
{
  "error": {
    "code":"Error Code"
  },
  "meta": {
    "timestamp": "Timestamp" // Timestamp
  }
}

در صورت مشاهده Status Code 404 URL درخواست خود را به اشتباه وارد نموده اید.

احرازهویت و ارتباط با سرویس

ساخت توکن ارتباطی JWT

JWT در واقع یک توکن امنیتی است که بر پایه فرمت JSON ساخته شده است. این توکن حاوی اطلاعات ضروری کاربر مانند شناسه کاربری، نقش‌ها و سطح دسترسی اوست. جی دبلیو تی به سه بخش سربرگ (Header)، بار (Payload) و امضا (Signature) تقسیم می‌شود. سربرگ شامل الگوریتم امضا و نوع توکن است. بار، اطلاعات کاربر را به صورت JSON در خود جای داده و امضا تضمین‌کننده صحت و درستی اطلاعات است.

JWT چگونه کار میکند؟

فرآیند کار JWT به شرح زیر است:

درخواست ورود

کاربر با وارد کردن نام کاربری و رمز عبور خود در مرحله قبل اقدام به دریافت توکن نموده است. و هسته مرکزی با توجه به اطلاعات اراسلی و دسترسی های مجاز کاربر اثدام به تولید توکن میکند.

تولید توکن JWT توسط درخواست کننده

درخواست کننده باید در این مرحله با توجه به اطلاعات زیر توکن JWT خود را ایجاد نموده و بعنوان کلید دسترسی جهت ارتباط با هسته مرکزی در HEADER درخواست های خود آن را ارسال نماید.

اعتبارسنجی توکن JWT

در درخواست‌های بعدی، سرور توکن JWT را دریافت کرده و اعتبار آن را بررسی می‌کند. در صورتیکه توکن معتبر باشد، به کاربر اجازه دسترسی به منابع داده می‌شود.

در حال حاضر اعتبار توکن های JWT بمدت 7 روز می باشد. که البته این موضوع بسته به توکن تولید شده در مرحله اول هم دارد در صورتی که توکن تولید شده در مرحله اول اعتباری کمتر از 7 روز داشته باشد انقضأ توکن JWT به همان میزان در نظر گرفته خواهد شد.

ساختار JSON Web Token چگونه است؟

ساختار JWT به سه بخش تقسیم می‌شود که با . (dot) از هم جدا می‌شوند:

و ساختاری شبیه به xxxxx.yyyyy.zzzzz

Header چیست؟

Header از دو بخش تشکیل شده است که بخش اول الگوریتم آن را تعیین می‌کند و بخش دوم نوع آن را مشخص می‌کند، که طبیعتاََ JWT است.

این ساختار JSON با Base64Url رمز گذاری شده است تا به بخش اول آن شکل بدهد، منظور از بخش اول xxxxx.yyyyy.zzzzz است.

برای مثال:  

عنوان نوع وضعیت مقادیر توضیحات
alg String اجباری HS256 الگوریتم ارسال درخواست
typ String اجباری JWT نوع درخواست
{
    "alg": "HS256",
    "typ": "JWT"
}
Payload چیست؟

بخش دوم xxxxx.yyyyy.zzzzz) Token) را Payload تشکیل می‌دهد و شامل یک سری اطلاعات درباره‌ی کاربر و یک سری داده‌های اضافی‌اند، که استفاده از آن‌ها خیلی رایج است. Payloadها می‌توانند ساختاری شبیه به زیر داشته باشند.

عنوان نوع وضعیت مقادیر توضیحات
iss String اجباری   دامنه ثبت شده در هسته مرکزی
aud String اجباری api مخاطب شما که در مواردی که شما فقط استفاده کننده از API هستید برابر api باید باشد
iat Timestamp اجباری   زمان صدور توکن JWT
uuid Integer اجباری   سریال عددی درخواست کننده
uip IP اجباری   آدرس IP درخواست کننده
{
    "iss": "Your domain",
    "aud": "Your level",
    "iat": "Timestamp",
    "uuid": "Your ID",
    "uip": "Your IP"
}
Signature چیست؟

آخرین و مهم‌ترین بخش JWTها Signature است، در حقیقت Signature تایید می‌کند که آیا داده‌ای که از سمت کاربر برگشته است بهم ریخته و یا دستکاری شده است؟

الگوریتمی که ما برای رمزنگاری در Header داده‌ایم را می‌گیرد، header و Payload را ترکیب می‌کند و آن‌ها را دوباره رمزنگاری می‌کند و بار دیگر با کلیدی که به Signature داده ایم رمزنگاری می‌کند و اگر کسی مقدار رمزگذاری شده را تغییر دهد خطایی دریافت می‌کنیم که به ما نشان می‌دهد Signature معتبر نمی‌باشد.

Signatureها نیز ساختاری شبیه به زیر دارند.  

عنوان نوع وضعیت مقادیر توضیحات
Header base64UrlEncode اجباری   JSON هدر اینکد شده
Payload base64UrlEncode اجباری   JSON اطلاعات ارسالی اینکد شده
Signature String اجباری   توکن دریافتی از اتوماسیون
HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload),token)

خروجی این عملیات بعنوان توکن JWT برای ارسال درخواست ها استفاده شود.

احرازهویت و ارتباط با سرویس

PHP (با استفاده از کتابخانه firebase/php-jwt)

جهت سهولت در کار با توکن های JWT چند نمونه کد از زبان های مختلف برای شما آماده شده است

<?php
require 'vendor/autoload.php';
use \Firebase\JWT\JWT;

$key = "your_secret_key";
$header = [
    "alg" => "HS256",
    "typ" => "JWT"
];
$payload = [
    "iss" => "Your domain",
    "aud" => "Your level",
    "iat" => time(),
    "uuid" => "Your ID",
    "uip" => "Your IP"
];

$jwt = JWT::encode($payload, $key, 'HS256');
echo $jwt;
?>

 

احرازهویت و ارتباط با سرویس

Python (با استفاده از کتابخانه PyJWT)

import jwt
import time

key = "your_secret_key"
header = {
    "alg": "HS256",
    "typ": "JWT"
}
payload = {
    "iss": "Your domain",
    "aud": "Your level",
    "iat": int(time.time()),
    "uuid": "Your ID",
    "uip": "Your IP"
}

token = jwt.encode(payload, key, algorithm='HS256', headers=header)
print(token)

 

احرازهویت و ارتباط با سرویس

JavaScript (با استفاده از کتابخانه jsonwebtoken)

const jwt = require('jsonwebtoken');

const key = "your_secret_key";
const header = {
    "alg": "HS256",
    "typ": "JWT"
};
const payload = {
    "iss": "Your domain",
    "aud": "Your level",
    "iat": Math.floor(Date.now() / 1000),
    "uuid": "Your ID",
    "uip": "Your IP"
};

const token = jwt.sign(payload, key, { algorithm: 'HS256', header: header });
console.log(token);

 

احرازهویت و ارتباط با سرویس

Node.js (با استفاده از کتابخانه jsonwebtoken)

const jwt = require('jsonwebtoken');

const key = "your_secret_key";
const header = {
    "alg": "HS256",
    "typ": "JWT"
};
const payload = {
    "iss": "Your domain",
    "aud": "Your level",
    "iat": Math.floor(Date.now() / 1000),
    "uuid": "Your ID",
    "uip": "Your IP"
};

const token = jwt.sign(payload, key, { algorithm: 'HS256', header: header });
console.log(token);

 

احرازهویت و ارتباط با سرویس

Java (با استفاده از کتابخانه java-jwt)

import com.auth0.jwt.JWT;
import com.auth0.jwt.algorithms.Algorithm;

import java.util.Date;

public class Main {
    public static void main(String[] args) {
        String key = "your_secret_key";
        Algorithm algorithm = Algorithm.HMAC256(key);

        String token = JWT.create()
                .withIssuer("Your domain")
                .withAudience("Your level")
                .withIssuedAt(new Date())
                .withClaim("uuid", "Your ID")
                .withClaim("uip", "Your IP")
                .sign(algorithm);

        System.out.println(token);
    }
}

 

مدیریت خطاها – Error handling

مدیریت خطاها – Error handling

مقدمه ای بر Error Handling

قبل از هر چیز لازم است بدانیم مدیریت خطا یا error handling به چه معناست. این اصطلاح به واکنش و مکانیسم‌های بازیابی نرم‌افزار در صورت بروز خطا اشاره می‌کند. به عبارت دیگر این کار فرآیندی است که شامل پیش‌بینی دقیق، شناسایی و رفع خطاها در برنامه‌ها است.

اجرای منظم یک برنامه از طریق مدیریت خطا آسان‌تر است. وقتی صحبت از رویکردهای خطا handling می‌شود، بسیاری از برنامه‌ها با مشکلات معماری نرم‌افزار مواجه می‌شوند.

توجه داشته باشید که API AirPlus کامل منطق بر اصول RESTful API نوشته شده است پس بنابراین پاسخ تمام درخواست ها با Status Code مورد نظر خود ارسال خواهد شد و مدیریت این Status Code ها یا هما کدهای وضعیتی در برنامه شما الزامیست.

1681155201571.png

طبق اصول کلی تمام پاسخ های صحیح با کد وضعیتی 200 ارسال خواهند شد.

اما اتوماسیون ایرپلاس در زمینه مدیریت خطاها هم مستندات جامع و کاربردی را تهیه نموده است.

مدیریت خطاها – Error handling

نحوه نگارش خطاها

پاسخ نادرست – Response False یا همان مشکل در ارسال اطلاعات

عنوان نوع مقادیر توضیحات
status Boolean false مقدار در پاسخ نادرست همیشه false است
time Timestamp زمان تولید پاسخ این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.
code Integer شماره خطا مربوطه جهت استعلام خطا میتوانید از طریق این لینک اقدام کنید.
{
    "status": false,
    "time": "Timestamp", // Timestamp
    "code": "Error Code"
}
مدیریت خطاها – Error handling

Status Code – کدهای وضعیتی درخواست ها

وضعیت 200

کد وضعیت 200 OK نشان می‌دهد که سرور درخواست ارسال‌شده را به‌درستی دریافت و پردازش کرده و پاسخ مورد انتظار را بدون هیچ‌گونه خطا بازگردانده است. به‌ عبارت‌ دیگر، زمانی که مرورگر با کد 200 مواجه می‌شود، یعنی صفحهٔ وب یا منبع درخواست‌شده به‌درستی بارگذاری شده است. شما با مواجه شدن با وضعیت 200 بدون هیچ مشکلی میتوانید دیتاهای مورد نظر خود را استخراج نمائید و به فرایند خود ادامه دهید.


وضعیت 201

کد 201 به معنای موفقیت در ایجاد یک منبع جدید در وب توسط وب‌سرور استفاده می‌شود. این کد وضعیت نشان‌دهنده این است که وب‌سرور با موفقیت درخواست POST (ایجاد منبع) یا PUT (به‌روزرسانی منبع) را پردازش کرده و یک منبع جدید ایجاد کرده است. این منبع معمولاً با یک URI (شناسه منابع یکتا) جدید معرفی می‌شود که به عنوان پاسخ به کلاینت ارسال می‌شود. این URI معمولاً به کلاینت امکان می‌دهد که به سرعت به منبع جدید دسترسی پیدا کند.

بطور مثال در زمان خرید بلیت در صورتی که خرید شما بدون هیچ مشکلی صورت بگیرد وضعیت 201یه معنای ایجاد این آیتم در وب سرور مرکزی دریافت خواهد شد.


وضعیت 204

کد 204 اعلام می‌کند که سرور درخواست کاربر را به خوبی برآورده کرده است اما محتوای جدیدی در پاسخ به درخواست در دسترس نیست.

بطور مثال شما زمانی که از API بازکردن قفل رزرو استفاده میکنید در صورت موفق بودن پاسخ برای شما با وضعیت 204 ارسال خواهد شد.


وضعیت 207

Status Code 207 Multi-Status یکی از کدهای وضعیت پروتکل HTTP است که معمولاً در پاسخ به درخواست‌های مربوط به WebDAV استفاده می‌شود. این کد نشان می‌دهد که سرور پاسخ‌های متعددی را برای یک درخواست واحد بازگردانده است.

در صورتی که شما مواردی را (بیشتر از یک آیتم) در درخواست خود جهت انجام عملیات ارسال فرمائید. پاسخ شما در صورتی که با خطا اولیه مواجه نشود اما به هر دلیلی مانند تکراری بودن و یا هر مورد دیگری ارسال شده باشد وضعیت کد 207 دریافت می شود و این به این معناست که قسمتی از درخواست انجام شده و قسمتی دیگر بنا به دلایل مشخص رد شده است.


کد وضعیت روشی برای اطلاع‌رسانی شما در مورد وضعیت درخواست است. این کد وضعیت معمولاً به دو صورت ارسال می‌شود. وضعیت 200 که نشان‌دهنده درست بودن همه مراحل درخواست و پاسخ سرور است و کد وضعیت 500 یا Error 500 که نشان‌دهنده بروز مشکل در پاسخ به درخواست است و یا کدهای دیگر که در زیر به جزئیات آن پرداخته ایم.

وضعیت 500

ارور 500 یک کد خطای HTTP status code است به این معنی که مشکلی در سرور وب‌سایت رخ داده، اما سرور نمی‌تواند بگوید مشکل دقیقاً چیست. کد وضعیت 500 (ارور داخلی سرور) نشان می‌دهد که سرور با شرایط غیرمنتظره‌ای مواجه شده که مانع از انجام درخواست شما می‌شود. هنگامی که از یک وب‌سایت بازدید می‌کنید، مرورگر شما درخواستی را به سروری که سایت در آن میزبانی می‌شود ارسال می‌کند. سرور این درخواست را دریافت کرده، آن را پردازش کرده و منابع درخواستی را به همراه یک هدر HTTP باز می‌فرستد. این هدر کد وضعیت HTTP (response code in the Hypertext Transfer Protocol) را نیز شامل می‌شود.

جهت حفظ ارتباط پایدار در صورتی که با این خطا مواجه شده اید، لطفا از طریق Base URL پشتیبان درخواست خود را ارسال نمائید. قابل ذکر است استفاده از سرور پشتیبان در شرایط معمولی توصیه نمیگردد.
سرور پشتیبان روشی جامع و کامل جهت ایجاد ارتباطی پایدار می باشد.

این خطا در صورتی که سرور اصلی پاسخگو نباشد ایجاد میگردد.

وضعیت 400

  ارور 400 که به  Bad Request 400  نیز معروف است به عنوان خطای کاربر یا کلاینت توسط سرور مرکزی شناخته می‌شود. زمانی که کاربران یک درخواست اشتباه را به سرور ارسال می‌کنند و سرور نمی‌تواند جوابی برای آن درخواست پیدا کند این خطا را به کاربر نشان می‌دهد. در واقع ارور 400 به کاربران نشان می‌دهد که درخواست آنها با موفقیت به سرور ارسال نشده است یا درخواست آنها نادرست بوده است. سرور نمی‌تواند درخواست کاربر را به دلیل وجود خطای کلاینت پردازش کند. به همین دلیل این موضوع را با ارسال پیام‌های مانند invalid request message framing یا deceptive request routing به کاربر نشان می‌دهد. دلایل مختلفی وجود دارد که باعث ایجاد خطا در ارسال درخواست کاربران به سرورها می‌شود.


وضعیت 404

ارور 404 خطای عدم یافتن مسیر و یا صفحه مورد نظر می باشد. در سرویس API ما در صورتی که شما آدرس URL مورد نظر را بصورت صحیح وارد ننمائید با این خطا مواجه میشوید.

در صورت بروز این خطا لطفا یکبار دیگر آدرس URL ارسالی خود را بررسی فرمائید.

در بعضی از شرایط امکان این وجود دارد که در مهلت تعیین شده جهت جابجایی آدرس Base شما اقدام نکرده باشید و سرور مورد نظر دیگر در آن ورژن پاسخگو درخواست های شما نباشد.


وضعیت 405

ارور 405 نشان دهنده این موضوع است که سرور مرکزی متد ارسالی مورد استفاده را نپذیرفته است و یکی از ارورهای سمت کلاینت به شمار می رود. به عبارتی این ارور نشان می دهد که درخواست به دسترسی ارسال شده است و وب سرور نیز این درخواست را تشخیص داده است اما متد به کار رفته را قبول نکرده است که در نتیجه کاربر قادر به مشاهده صفحه مورد نظر نخواهد بود و با ارور Method Not Allowed مواجه خواهد شد.


وضعیت 409

Status Code 409 Conflict یکی از کدهای وضعیت HTTP است که به معنای وجود تعارض یا مشکل در درخواست ارسالی توسط کلاینت است. این کد نشان‌دهنده‌ی این است که درخواست کلاینت نمی‌تواند به‌درستی اجرا شود زیرا با وضعیت جاری سرور یا منابع موجود تعارض دارد.

به طور مثال در صورتی که شما آیتمی تکراری جهت ثبت ارسال نمائید با وضعیت کد 409 مواجه می شود و این به معنی تکراری بودن آیتم می باشد.


وضعیت 422

Status Code 422 Unprocessable Entity یکی از کدهای وضعیت HTTP است که به معنای “موجودیتی که قابل پردازش نیست” است. این کد معمولاً زمانی استفاده می‌شود که درخواست ارسال‌شده از نظر ساختاری صحیح است (یعنی درخواست به درستی فرمت شده و اطلاعات ضروری را شامل می‌شود)، اما سرور قادر به پردازش آن نیست به دلیل اینکه داده‌های درخواست با مشکلات منطقی یا اعتبارسنجی مواجه هستند.

مدیریت خطاها – Error handling

خطاهایی که در قالب Response دریافت میشود

این خطا ها در قالب Response False بصورت کد دریافت میشوند که میتوانید در متن خطا ها و راه حل آنها را در جدول زیر مشاهده نمائید.

ردیف کد خطا عنوان راه حل
1 1000 ثبت این آیتم موفقیت آمیز بوده است در مواردی دیگر خطایی رخ داده است.
2 1001 امکان قفل بر روی چارتری درخواستی امکان پذیر نمی باشد. این خطا راهکاری ندارد.
3 1002 چارتر درخواستی موجود نمی باشد. این خطا راهکاری ندارد.
4 1003 مقصد مورد نظر یافت نشد. لطفا مقصد مورد نظر را یا بصورت یاتا و یا بصورت سریال از طریق API ایرپلاس وارد نمائید (الویت سریال های ایرپلاس می باشد)
5 1004 تاریخ های وارد شده معتبر نمی باشد لطفا تاریخ ها را به میلادی و با فرمت صحیح ارسال فرمائید (YYYY-MM-DD)
6 1005 قفل ارسالی معتبر نمی باشد. اطلاعات قفل را بررسی نمائید و اگر از کد اطمینان دارید تعداد مسافرین با قفل همخوانی ندارد.
7 1006 برای این مسافر قبلا این آیتم خریداری شده است. در صورتی که با این خطا مواجه شده اید از طریق متد بررسی وضعیت اطلاعات این رزرو را دریافت نمائید.
8 1007 آیتم مورد نظر یافت نشد. این خطا راهکاری ندارد.
9 1008 ظرفیت این آیتم تکمیل شده است لطفا مجدد جستجو را انجام دهید و در صورت فعال بودن آیتم دیگری را انتخاب نمائید.
10 1009 تعداد مسافرین با قفل ارسالی همخوانی ندارد لطفا مجدد درخواست خود را با تعداد صحیح مندرج در قفل ارسال فرمائید.
11 1010 جمع مبلغ ارسالی با مبلغ قابل پرداخت همخوانی ندارد. لطفا مجدد درخواست خود را با مبلغ صحیح ارسال فرمائید.
12 1011 کد ملی/شماره پاسپورت معتبر نمی باشد لطفا کدملی/شماره پاسپورت موجود در data را بررسی و تصحیح فرمائید.
13 1012 با اطلاعاتی ارسالی رزروی یافت نشد لطفا اطلاعات رابررسی و دوباره اقدام فرمائید.
14 1013 فرمت شماره موبایل ارسالی صحیح نمی باشد. فرمت صحیح شماره تلفن همراه باید با +98 یا 09 و یا 9 شروع شده باشد و تعداد کاراکتر صحیح ارسال شود.
15 1014 فرمت ایمیل ارسالی صحیح نمی باشد. لطفا یک ایمیل صحیح با فرمت درست ارسال فرمائید بطور مثال : info@airplus.app
16 1015 استرداد این آیتم باتوجه به قوانین استرداد امکان پذیر نمی باشد. با توجه به قوانین استرداد این آیتم امکان استرداد را ندارد.
17 1016 مغادیر مورد نیاز API ارسال نشده است. لطفا مغادیر را بررسی فرمائید و مقدار لازم را ارسال فرمائید.
18 1017 مغادیر مورد api به درستی ارسال نشده است. لطفا مغادیر را برسی فرمایید و مقدار لازم را به صورت صحیح و در فرمت مشخص ارسال فرمایید.
19 1018 تاریخ شروع و پایان جستجو فقط میتوانید در آینده باشد. لطفا محدوده تاریخی خود را به آینده تغییر دهید و اعتبارسنجی این موضوع را انجام دهید.
20 1019 ملیت مسافر معتبر نمی باشد. لطفا ملیت مسافر را برسی نمائید و ملیت معتبر را ارسال فرمائید.
21 1021 ورود تاریخ با فرمت صحیح الزامی می باشد. لطفا تاریخ را در فرمت صحیح ارسال فرمائید.
22 2000 خطای مهلک رخ داده است این خطا الزاما باید از طریق هسته مرکزی رفع شود و لطفا به واحد پشتیبانی اطلاع دهید.

در ضمن میتوانید از طریق API زیر بصورت داینامیک این خطاها را دریافت و مدیریت نمائید.

مدیریت خطاها – Error handling

دریافت جزئیات خطا از طریق API

عنوان وضعیت مقادیر توضیحات
Method اجباری GET متد ارسال درخواست
Domain اجباری نام دامنه ثبت شده در اتوماسیون  
Api Url اجباری دامنه هسته مرکزی سرویس  
Api version اجباری به نسخه فعلی سرویس API تلقی میشود که در قسمت پیش نیازهای اتوماسیون به ریز شرح داده شده است.  
Authorization اجباری توکن JWT تولید شده این توکن بصورت JWT تولید میشود.
توضیحات ارسال درخواست
مدیریت خطاها – Error handling

سربرگ – Header

در این روش شما باید درخواست خود را از طریق لینک زیر ارسال فرمائید.

{{Api Url}}/error-handling

HEADER
GET /api/reservation/{{Api version}}/error-handling HTTP/1.1
Host: {{Your Host}}
Authorization: Bearer JWTToken
Content-Type: application/json
Domain: {{Your Domain}}

API Url از طریق پنل کاربری قابل مشاهده خواهد بود

مدیریت خطاها – Error handling

مقادیر ارسالی – Request Data

عنوان نوع وضعیت مقادیر توضیحات
code Integer اختیاری نام کاربری دریافت شده در صورت وجود کد فقط کد مورد نظر بازگشت داده می شود.
{
    "code": "Error Code"
}
مدیریت خطاها – Error handling

پاسخ صحیح – Response True

عنوان نوع مقادیر توضیحات
status Boolean true مقدار در پاسخ صحیح همیشه true است
time Timestamp زمان تولید پاسخ این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.
data Array    
data[Index].title String شرح خطا به زبان فارسی  
data[Index].solution String روش حل خطا به زبان فارسی  

دریافت این پاسخ با Status Code 200 دریافت خواهد شد.

{
    "status": true,
    "time": "Timestamp", // Timestamp
    "data": [
        {
            "title": "Error title in Persian",
            "solution": "How to solve errors in Persian"
        },
        ...
    ]
}

 

مدیریت خطاها – Error handling

پاسخ نادرست – Response False

عنوان نوع مقادیر توضیحات
status Boolean false مقدار در پاسخ نادرست همیشه false است
time Timestamp زمان تولید پاسخ این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.
code Integer شماره خطا مربوطه
{
    "status": false,
    "time": "Timestamp", // Timestamp
    "code": "Error Code"
}

گرفتن IP آدرس هاست و ارتباطی – Get IP

گرفتن IP آدرس هاست و ارتباطی – Get IP

دریافت از طریق API

عنوان وضعیت مقادیر توضیحات
Method اجباری GET متد ارسال درخواست
Domain اجباری نام دامنه ثبت شده در اتوماسیون  
Api Url اجباری دامنه هسته مرکزی سرویس  
Api version اجباری به نسخه فعلی سرویس API تلقی میشود که در قسمت پیش نیازهای اتوماسیون به ریز شرح داده شده است.  

توضیحات ارسال درخواست

گرفتن IP آدرس هاست و ارتباطی – Get IP

سربرگ – Header

در این روش شما باید درخواست خود را از طریق لینک زیر ارسال فرمائید.

{{Api Url}}/ip

HEADER
GET /api/reservation/{{Api version}}/ip HTTP/1.1
Host: {{Your Host}}
Content-Type: application/json
Domain: {{Your Domain}}

API Url از طریق پنل کاربری قابل مشاهده خواهد بود

گرفتن IP آدرس هاست و ارتباطی – Get IP

مقادیر ارسالی – Request Data

این API نیازی به ارسال داده ندارد.

گرفتن IP آدرس هاست و ارتباطی – Get IP

پاسخ صحیح – Response True

عنوان نوع مقادیر توضیحات
payload Object    
payload.host IP آدرس هاست ارسال کننده درخواست یک آدرس IP برمیگرداند
payload.ip IP آدرس کاربر ارسال کننده درخواست یک آدرس IP برمیگرداند
meta Object    
meta.timestamp Timestamp   زمان تولید پاسخ   این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.

دریافت این پاسخ با Status Code 200 دریافت خواهد شد.

{
    "payload": {
        "host": "192.168.0.5",
        "ip": "192.168.0.170"
    },
    "meta": {
       "timestamp": "Timestamp" // Timestamp
    }
}

 

گرفتن IP آدرس هاست و ارتباطی – Get IP

پاسخ نادرست – Response False

عنوان نوع مقادیر توضیحات
error Object    
error.code Integer شماره خطا مربوطه جهت استعلام خطا میتوانید از طریق این لینک اقدام کنید.
meta Object    
meta.timestamp Timestamp   زمان تولید پاسخ   این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود.
{
  "error": {
    "code":"Error Code"
  },
  "meta": {
    "timestamp": "Timestamp" // Timestamp
  }
}

در صورت مشاهده Status Code 404 URL درخواست خود را به اشتباه وارد نموده اید.

ساخت لینک – Deep Link (بزودی)

ساخت لینک – Deep Link (بزودی)

بزودی…