جستجو و نمایش
- جستجو چارترهای موجود (باامکان افزودن بازه زمانی) – Search
- دریافت از طریق API
- سربرگ – Header
- مقادیر ارسالی – Request Data
- پاسخ صحیح – Response True
- پاسخ نادرست – Response False
- بررسی آیتم جستجو شده قبل از خرید – Item Status
جستجو چارترهای موجود (باامکان افزودن بازه زمانی) – Search
شما به دو روش کلی و متفاوت می توانید اطلاعات availability را دریافت نمایید.
- روش اول: درخواست real-time
- در این روش، هربار که مسافری در سایت شما جستجو انجام دهد، شما با ارسال درخواست اطلاعات availability را دریافت کرده و به مسافر نمایش می دهید.
- این روش مناسب زمانی است که سایت شما دارای ترافیک زیادی نیست. به عنوان مثال مجموع تعداد درخواست شما به سرویس، کمتر از 30 هزار عدد درخواست در روز می باشد.
- روش دوم: Cache کردن اطلاعات و پاسخ دادن به جستجوها از Cache داخلی خود
- در این روش شما در فواصل زمانی منظم، اطلاعات availability را از تامین کننده دریافت و در سمت خود ذخیره می نمایید. سپس هربار که کاربری در سایت شما جستجو انجام میدهد، از Cache داخلی خود اطلاعات را دریافت کرده و به مسافر نمایش می دهید.
- این روش مناسب زمانی است که سایت شما دارای ترافیک زیادی می باشد.
دریافت از طریق API
| عنوان | وضعیت | مقادیر | توضیحات |
| Method | اجباری | GET | متد ارسال درخواست |
| Domain | اجباری | نام دامنه ثبت شده در اتوماسیون | |
| Api Url | اجباری | دامنه هسته مرکزی سرویس | |
| type | اجباری | flight/bus/train/ship/insurance/service | پارامترهای url |
| Api version | اجباری | به نسخه فعلی سرویس API تلقی میشود که در قسمت پیش نیازهای اتوماسیون به ریز شرح داده شده است. | |
| Authorization | اجباری | توکن JWT تولید شده | این توکن بصورت JWT تولید میشود. |
هنگام ارسال درخواست،پارامترهای ارسالی url میتوانند تغییر کنند.
سربرگ – Header
{{Api Url}}/search/{{type}}
HEADER
GET /api/reservation/{{Api version}}/search/{{type}} HTTP/1.1
Host: {{Your Host}}
Content-Type: application/json
Authorization: Bearer JWTToken
Domain: {{Your Domain}}
API Url از طریق پنل کاربری قابل مشاهده خواهد بود.
مقادیر ارسالی – Request Data
| عنوان | نوع | وضعیت | مقادیر | توضیحات |
| datetime_start | String | اجباری | تاریخ رفت | |
| datetime_end | String | اجباری | تاریخ برگشت | اگر از روش real-time استفاده میکنید نیازی به قرار دادن این کلید نیست ولی اگر از روش cache استفاده میکنید قرار دادن این کلید اجباری میباشد |
| origin | String | اجباری | یاتا فرودگاه مبدا | |
| destination | String | اجباری | یاتا فرودگاه مقصد |
هنگام استفاده از روش real-time تاریخ رفت و برگشت را میتوانید در بازه یک روزه تا یک ساله انتخاب نمایید.
{
"datetime_start": "2025-01-19",
"datetime_end": "2025-01-19",
"origin":"THR",
"destination": "KIH"
}
پاسخ صحیح – Response True
| عنوان | نوع | مقادیر | توضیحات |
| items | Array | ||
| items[index].charter_id | Integer | عطف چارتر | |
| items[index].serial | Integer | سریال چارتر | |
| items[index].supplier | Integer | کد تامین | |
| items[index].id | String | ||
| items[index].plan | Boolean | ||
| items[index].details | Object | ||
| items[index].details.airline | Object | ||
| items[index].details.airline.iata | String | ||
| items[index].details.airline.icao | String | ||
| items[index].details.airline.logo | String | ||
| items[index].details.airline.title | Object | ||
| items[index].details.airline.title.fa | String | ||
| items[index].details.airline.title.en | String | ||
| items[index].details.origin | Object | ||
| items[index].details.origin.iata | String | ||
| items[index].details.origin.terminal | Integer | ||
| items[index].details.destination | Object | ||
| items[index].details.destination.iata | String | ||
| items[index].details.destination.terminal | Integer | ||
| items[index].details.aircraft | Object | ||
| items[index].details.aircraft.iata | String | ||
| items[index].details.aircraft.icao | String | ||
| items[index].details.aircraft.title | Object | ||
| items[index].details.aircraft.title.fa | String | ||
| items[index].details.aircraft.title.en | String | ||
| items[index].details.flight_number | String | ||
| items[index].details.steps | Boolean | ||
| items[index].details.duration | String | ||
| items[index].details.datetime | String | ||
| items[index].details.arrival_datetime | String | ||
| items[index].items | Array | ||
| items[index].items[index].item_id | Integer | ||
| items[index].items[index].title | String | ||
| items[index].items[index].reservable | Boolean | ||
| items[index].items[index].statistics | Object | ||
| items[index].items[index].statistics.capacity | Integer | ||
| items[index].items[index].statistics.waiting | Integer | ||
| items[index].items[index].max_purchase | Integer | ||
| items[index].items[index].rules | null | ||
| items[index].items[index].services | Boolean | ||
| items[index].items[index].baggage | Object | ||
| items[index].items[index].baggage.trunk | Object | ||
| items[index].items[index].baggage.trunk.adult | Object | ||
| items[index].items[index].baggage.trunk.adult.number | Integer | ||
| items[index].items[index].baggage.trunk.adult.weight | Integer | ||
| items[index].items[index].baggage.trunk.child | Object | ||
| items[index].items[index].baggage.trunk.child.number | Integer | ||
| items[index].items[index].baggage.trunk.child.weight | Integer | ||
| items[index].items[index].baggage.trunk.infant | Object | ||
| items[index].items[index].baggage.trunk.infant.number | Integer | ||
| items[index].items[index].baggage.trunk.infant.weight | Integer | ||
| items[index].items[index].baggage.hand | Object | ||
| items[index].items[index].baggage.hand.adult | Object | ||
| items[index].items[index].baggage.hand.adult.number | Integer | ||
| items[index].items[index].baggage.hand.adult.weight | Integer | ||
| items[index].items[index].baggage.hand.child | Object | ||
| items[index].items[index].baggage.hand.child.number | Integer | ||
| items[index].items[index].baggage.hand.child.weight | Integer | ||
| items[index].items[index].baggage.hand.infant | Object | ||
| items[index].items[index].baggage.hand.infant.number | Integer | ||
| items[index].items[index].baggage.hand.infant.weight | Integer | ||
| items[index].items[index].financial | Object | ||
| items[index].items[index].financial.adult | Object | ||
| items[index].items[index].financial.adult.base_fare | Integer | ||
| items[index].items[index].financial.adult.taxes | Boolean | ||
| items[index].items[index].financial.adult.total_fare | Integer | ||
| items[index].items[index].financial.adult.payable | Integer | ||
| items[index].items[index].financial.adult.markups | Boolean | ||
| items[index].items[index].financial.adult.commissions | Boolean | ||
| items[index].items[index].financial.adult.citizenship | Boolean | ||
| items[index].items[index].financial.child | Object | ||
| items[index].items[index].financial.child.base_fare | Integer | ||
| items[index].items[index].financial.child.taxes | Boolean | ||
| items[index].items[index].financial.child.total_fare | Integer | ||
| items[index].items[index].financial.child.payable | Integer | ||
| items[index].items[index].financial.child.markups | Boolean | ||
| items[index].items[index].financial.child.commissions | Boolean | ||
| items[index].items[index].financial.child.citizenship | Boolean | ||
| items[index].items[index].financial.infant | Object | ||
| items[index].items[index].financial.infant.base_fare | Integer | ||
| items[index].items[index].financial.infant.taxes | Boolean | ||
| items[index].items[index].financial.infant.total_fare | Integer | ||
| items[index].items[index].financial.infant.payable | Integer | ||
| items[index].items[index].financial.infant.markups | Boolean | ||
| items[index].items[index].financial.infant.commissions | Boolean | ||
| items[index].items[index].financial.infant.citizenship | Boolean | ||
| items[index].description | Object | ||
| items[index].description.public | Boolean | ||
| items[index].description.financial | Boolean | ||
| meta | Object | ||
| meta.timestamp | Timestamp | زمان تولید پاسخ | این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود. |
دریافت این پاسخ با Status Code 200 دریافت خواهد شد.
{
"items": [
{
"charter_id": 10001,
"serial": 10001,
"supplier": 1,
"id": "Tr4afsX",
"plan": false,
"details": {
"airline": {
"iata": "",
"icao": "",
"logo": "",
"title": {
"en": "",
"fa": ""
}
},
"origin": {
"iata": "",
"terminal": false
},
"destination": {
"iata": "",
"terminal": false
},
"aircraft": {
"iata": "",
"icao": "",
"title": {
"en": "",
"fa": null
}
},
"flight_number": "",
"steps": false,
"duration": false,
"datetime": "2025-01-19 00:00",
"arrival_datetime": false
},
"items": [
{
"item_id": 0,
"title": "Y",
"reservable": true,
"statistics": {
"capacity": 9,
"waiting": 0
},
"max_purchase": 9,
"rules": null,
"services": false,
"baggage": {
"trunk": {
"adult": {
"number": 1,
"weight": 20
},
"child": {
"number": 1,
"weight": 20
},
"infant": {
"number": 0,
"weight": 0
}
},
"hand": {
"adult": {
"number": 1,
"weight": 7
},
"child": {
"number": 1,
"weight": 7
},
"infant": {
"number": 0,
"weight": 0
}
}
},
"financial": {
"adult": {
"base_fare": 250000,
"taxes": false,
"total_fare": 250000,
"payable": 250000,
"markups": false,
"commissions": false,
"citizenship": false
},
"child": {
"base_fare": 20000,
"taxes": false,
"total_fare": 20000,
"payable": 20000,
"markups": false,
"commissions": false,
"citizenship": false
},
"infant": {
"base_fare": 6,
"taxes": false,
"total_fare": 6,
"payable": 6,
"markups": false,
"commissions": false,
"citizenship": false
}
}
},
...
],
"description": {
"public": false,
"financial": false
}
},
...
],
"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 درخواست خود را به اشتباه وارد نموده اید.
بررسی آیتم جستجو شده قبل از خرید – Item Status
هنگام خرید چارتر ممکن است کمی زمان برای وارد کردن اطلاعات مسافر نیاز باشد به همین دلیل امکان تغییر قیمت چارتر یا بقیه مشخصات وجود دارد.
در این بخش قبل از انتقال کاربر به درگاه پرداخت قیمت و تعداد باقیمانده و بقیه مشخصات چارتر مجدد مورد برسی قرار میگیرد تا از تداخل با مشخصات مورد نظر جلوگیری شود.
دریافت از طریق API
| عنوان | وضعیت | مقادیر | توضیحات |
| Method | اجباری | GET | متد ارسال درخواست |
| Domain | اجباری | نام دامنه ثبت شده در اتوماسیون | |
| Api Url | اجباری | دامنه هسته مرکزی سرویس | |
| Api version | اجباری | به نسخه فعلی سرویس API تلقی میشود که در قسمت پیش نیازهای اتوماسیون به ریز شرح داده شده است. | |
| Authorization | اجباری | توکن JWT تولید شده | این توکن بصورت JWT تولید میشود. |
در این روش شما باید درخواست خود را از طریق لینک زیر ارسال فرمائید.
مقادیر ارسالی – Request Data
| عنوان | نوع | وضعیت | مقادیر | توضیحات |
| items | Array | اجباری | چارتر های انتخابی | تعداد آیتم ها میتوانند متناسب با تعداد چارتر انتخابی افزایش یابند |
| items[index].main_id | Integer | اجباری | عطف چارتر | |
| items[index].item_id | Integer | اجباری | آیدی کلاس چارتر | |
| items[index].lock_id | Integer | اختیاری | آیدی قفل رزرو | اگر از قبل عملیات قفل رزرو انجام شده است این کلید را قرار دهید،در صورت قرار دادن این کلید تعداد آمار باقیمانده رزرو به صورت خودکار به روز میشود |
{
"items": [
{
"main_id": 10001,
"item_id": 10001,
"lock_id":1, // Integer
},
...
]
}
سربرگ – Header
دریافت از طریق API
در این روش شما باید درخواست خود را از طریق لینک زیر ارسال فرمائید.
{{Api Url}}/items/status
HEADER
GET /api/reservation/{{Api version}}/items/status HTTP/1.1
Host: {{Your Host}}
Content-Type: application/json
Authorization: Bearer JWTToken
Domain: {{Your Domain}}
API Url از طریق پنل کاربری قابل مشاهده خواهد بود.
مقادیر ارسالی – Request Data
| عنوان | نوع | وضعیت | مقادیر | توضیحات |
| items | Array | اجباری | چارتر های انتخابی | تعداد آیتم ها میتوانند متناسب با تعداد چارتر انتخابی افزایش یابند |
| items[index].main_id | Integer | اجباری | عطف چارتر | |
| items[index].item_id | Integer | اجباری | آیدی کلاس چارتر | |
| items[index].lock_id | Integer | اختیاری | آیدی قفل رزرو | اگر از قبل عملیات قفل رزرو انجام شده است این کلید را قرار دهید،در صورت قرار دادن این کلید تعداد آمار باقیمانده رزرو به صورت خودکار به روز میشود |
{
"items": [
{
"main_id": 10001,
"item_id": 10001,
"lock_id":1, // Integer
},
...
]
}
پاسخ صحیح – Response True
| عنوان | نوع | مقادیر | توضیحات |
| items | Array | ||
| items[index].charter_id | Integer | عطف چارتر | |
| items[index].item | |||
| items[index].item[index].item_id | Integer | ||
| items[index].item[index].statistics | |||
| items[index].item[index].statistics.capacity | Integer | ||
| items[index].item[index].statistics.waiting | Integer | ||
| items[index].item[index].financial | |||
| items[index].item[index].financial.adult | |||
| items[index].item[index].financial.adult.payable | Integer | ||
| items[index].item[index].financial.child | |||
| items[index].item[index].financial.child.payable | Integer | ||
| items[index].item[index].financial.infant | |||
| items[index].item[index].financial.infant.payable | Integer | ||
| items[index].status | Integer | ||
| meta | |||
| meta.timestamp | Timestamp | زمان تولید پاسخ | این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود. |
دریافت این پاسخ با Status Code 200 دریافت خواهد شد.
{
"items": [
{
"charter_id": 10001,
"item": {
"item_id": 10001,
"statistics": {
"capacity": 9,
"waiting": 0
},
"financial": {
"adult": {
"payable": 250000
},
"child": {
"payable": 20000
},
"infant": {
"payable": 6
}
}
},
"status": "bookable"
},
...
],
"meta": {
"timestamp": "Timestamp" // Timestamp
}
}
پاسخ نادرست – Response False
| عنوان | نوع | مقادیر | توضیحات |
| error | |||
| error.code | Integer | شماره خطا مربوطه | جهت استعلام خطا میتوانید از طریق این لینک اقدام کنید. |
| meta | |||
| meta.timestamp | Timestamp | زمان تولید پاسخ | این زمان بر اساس timestamp می باشد – در صورت نیاز از این زمان استفاده شود. |
{
"error": {
"code":"Error Code"
},
"meta": {
"timestamp": "Timestamp" // Timestamp
}
}
در صورت مشاهده Status Code 404 URL درخواست خود را به اشتباه وارد نموده اید.