Retrieve Booking
متد GetStatus
کاربرد این متد برای زمانی است که شما متد Book را فراخوانی نموده اید، ولی به هر دلیلی – مانند مشکلات شبکه و قطعی اینترنتی یا ریست شدن سرور – جوابی از سپهر دریافت نکرده اید، با استفاده از این متد می توانید وضعیت درخواست رزرو و اینکه آیا رزرو صادر شده است یا خیر را بررسی نمایید.
پیشنهاد می گردد اگر بعد از فراخوانی متد Book هیچ جوابی دریافت نکردید، حداقل 15 ثانیه صبر نموده و سپس از متد GetStatus استفاده نمایید. در صورتی که فاصله بین فراخوانی متد Book و متد GetStatus کمتر از 15 ثانیه باشد، احتمال اینکه متد GetStatus جواب اشتباهی را خروجی دهد زیاد است. و ممکن است رزرو شما در حال صادر شدن باشد ولی متد GetStatus در جواب پاسخ دهد که هیچ رزروی صادر نشده است. به بیان فنی تر می توان اینطور گفت که وقتی متد Book را فراخوانی می نمایید یک Timeout به میزان 15 ثانیه برای آن تنظیم نمایید و در صورتی که خطای timeout دریافت کردید آنگاه متد GetStatus را فراخوانی نمایید تا از نتیجه صادر شدن یا نشدن رزرو خود مطلع شوید.
این متد اطلاعات مربوط به رزرو اولیه را نمایش میدهد و در صورتی که بعدا روی رزرو اصلاحیه ای صورت گرفته باشد – مانند استرداد یا تغییر تاریخ – آن اصلاحیه ها را خروجی نمی دهد.
API Endpoint
https://{SupplierWebsiteUrl}/api/Partners/Tour/RetrieveBooking/V1/GetStatus post
Request Parameters
نمونه کلاس Request به زبان سی شارپ در پروژه Partners.Contracts (دانلود) در پوشه زیر موجود است:
\Tour\RetrieveBooking\V1\GetStatus\RequestModel
Credential
Complex type
اطلاعات مربوط به نام کاربری و رمز عبور
Username
string
نام کاربری
Password
string
رمز عبور به صورت MD5 شده
YourLocalInventoryPnr
string
رفرنس سیستم شما که در زمان رزرو به متد Book ارسال نموده اید.
{
"Credential": {
"Username": "testdev1",
"Password": "25f9e794323b453885f5181f1b624d0b"
},
"YourLocalInventoryPnr": "24d3af03-bc90-4d77-bc4d-0a6c9230c36c"
}
Response Data
نمونه کلاس Response به زبان سی شارپ در پروژه Partners.Contracts (دانلود) در پوشه زیر موجود است:
\Tour\RetrieveBooking\V1\GetStatus\ResponseModel
StatusId
number
وضعیت رزرو که شامل یکی از موارد زیر می گردد
عدد 1 بدین معناست که رزرو صادر شده است و اطلاعات آن در فیلد PassengerList قابل مشاهده می باشد.
عدد 2 بدین معناست که رزروی با رفرنس شما (YourLocalInventoryPnr) پیدا و صادر نشده است.
عدد 3 بدین معناست که درخواست رزرو شما توسط سپهر دریافت شده است و رزرو در حال پردازش می باشد. ولی وضعیت آن هنوز تایید نهایی نشده است.
عدد 4 بدین معناست که رزرو شما به خطا خورده و صادر نشده است. علت خطا در فیلد FailReason خروجی داده می شود.
StatusDesc
string
مقدار این فیلد توضیحی برای فیلد StatusId می باشد. و بنابراین شامل یکی از موارد زیر می گردد:
مقدار OK بدین معناست که رزرو صادر شده است و اطلاعات آن در فیلد PassengerList قابل مشاهده می باشد.
مقدار NotFound بدین معناست که رزروی با رفرنس شما (YourLocalInventoryPnr) پیدا و صادر نشده است.
مقدار IssueInProgress بدین معناست که درخواست رزرو شما توسط سپهر دریافت شده است و رزرو در حال پردازش می باشد. ولی وضعیت آن هنوز تایید نهایی نشده است.
مقدار Failed بدین معناست که رزرو شما به خطا خورده و صادر نشده است. علت خطا در فیلد FailReason خروجی داده می شود.
Pnr
string
در صورتی که رزرو شما با موفقیت صادر شده باشد، رفرنس سیستم سپهر در این فیلد خروجی داده می شود
FailReason
string
در صورتی که رزرو شما به خطا خورده باشد، علت خطا در این فیلد خروجی داده می شود.
FlightPassengerList
List(Passenger)
در صورتی که رزرو شما با موفقیت صادر شده باشد، لیست مسافران مربوط به پرواز در این فیلد خروجی داده می شود.
FirstName
string
نام مسافر
LastName
string
نام خانوادگی مسافر
AgeType
string
گروه سنی مسافر که شامل یکی از مقادیر ADL یا CHD یا INF می باشد
Gender
string
جنسیت مسافر که شامل یکی از مقادر M به معنی مذکر یا F به معنی مونث می باشد.
Birthdate
string
تاریخ تولد مسافر به صورت میلادی و با فرمت yyyy-MM-dd
NationalityCountry
string
کد دوحرفی کشور مربوط به ملیت مسافر
IranianCartMelli
complex type
کد ملی مسافر برای مسافران ایرانی
CodeMelli
string
کد ملی
Passport
complex type
اطلاعات مربوط به گذرنامه مسافر
Number
string
شماره گذرنامه
ExpiryDate
string
تاریخ انقضا گذرنامه به صورت میلادی و با فرمت yyyy-MM-dd
PlaceOfIssueCountry
string
کد دو حرفی محل صدور گذرنامه
CharterSegmentList
List(CharterSegment)
لیست سگمنت های چارتری مسافر
TicketNumber
string
شماره بلیط مسافر
FlightNumber
string
شماره پرواز
FlightDate
string
تاریخ پرواز به صورت میلادی و به ناحیه زمانی فرودگاه مبدا و با فرمت yyyy-MM-dd HH:mm
OriginIataCode
string
کد یاتا فرودگاه مبدا
DestinationIataCode
string
کد یاتا فرودگاه مقصد
CabinType
string
نوع کابین کلاس پروازی که می تواند یکی از موارد زیر را داشته باشد:
- Economy
- EconomyPlus
- PremiumEconomy
- Business
- BusinessComfort
- BusinessPremium
- First
BookingCode
string
معمولا ترکیب یک یا دو حرف بوده و مشخص کننده نوع BookingCode می باشد. مانند Y یا M.
FareName
string
اسم Fare
AirlineIataCode
string
کد یاتا ایرلاین
SaleInfo
Complex type
اطلاعات مربوط به نرخ فروش
BaseFare
decimal
نرخ پایه بلیط
Tax
decimal
مجموع مالیات
TotalFare
decimal
مجموع نرخ پایه به علاوه مالیات
CommisionPercent
decimal
کمیسیون درصدی
CalculatedAmountOfCommisionPercent
decimal
مقدار مبلغی معادل کمیسیون درصدی
CommisionValue
decimal
کمیسیون مبلغی
در برخی پروازها، کمیسیون به جای درصدی به صورت مبلغی ارائه می گردد. که البته این مورد بسیار نادر اتفاق می افتد.
در صورت تعریف شدن کمیسیون به صورت مبلغ، مقدار این فیلد مشخص کننده مقدار آن خواهد بود
Payable
decimal
مبلغ نهایی
مبلغ این فیلد در حساب بدهکاری خریدار منظور می گردد و مبنای پرداخت های پولی می باشد.
FreeBaggage
Complex type
اطلاعات مربوط به بار مجاز رایگان
CheckedBaggage_Quantity
number
تعداد چمدان
CheckedBaggage_TotalWeight
number
مجموع وزن چمدان ها
HandBaggage_Quantity
number
تعداد کیف بار دستی
HandBaggage_TotalWeight
number
مجموع وزن کیف و بار دستی
WebserviceSegmentList
List(WebserviceSegment)
لیست سگمنت های وب سرویسی مسافر
FlightNumber
string
شماره پرواز
FlightDate
string
تاریخ پرواز به صورت میلادی و به ناحیه زمانی فرودگاه مبدا و با فرمت yyyy-MM-dd HH:mm
OriginIataCode
string
کد یاتا فرودگاه مبدا
DestinationIataCode
string
کد یاتا فرودگاه مقصد
CabinType
string
نوع کابین کلاس پروازی که می تواند یکی از موارد زیر را داشته باشد:
- Economy
- EconomyPlus
- PremiumEconomy
- Business
- BusinessComfort
- BusinessPremium
- First
BookingCode
string
معمولا ترکیب یک یا دو حرف بوده و مشخص کننده نوع BookingCode می باشد. مانند Y یا M.
FareName
string
اسم Fare
AirlineIataCode
string
کد یاتا ایرلاین
Supplier
Complex type
اطلاعات مربوط به تامین کننده پرواز وب سرویسی
در اینجا منظور از تامین کننده سایتی است که پروازهای خود را به صورت وب سرویسی به سایت سپهری داده است که شما به آن درخواست ارسال نموده اید.
Name
string
نام تامین کننده
Pnr
string
رفرنس تولید شده توسط تامین کننده پرواز وب سرویسی
TicketNumber
string
شماره بلیط تولید شده توسط تامین کننده
SaleInfo
Complex type
اطلاعات مربوط به نرخ فروش
BaseFare
decimal
نرخ پایه بلیط
Tax
decimal
مجموع مالیات
TotalFare
decimal
مجموع نرخ پایه به علاوه مالیات
CommisionPercent
decimal
کمیسیون درصدی
CalculatedAmountOfCommisionPercent
decimal
مقدار مبلغی معادل کمیسیون درصدی
CommisionValue
decimal
کمیسیون مبلغی
در برخی پروازها، کمیسیون به جای درصدی به صورت مبلغی ارائه می گردد. که البته این مورد بسیار نادر اتفاق می افتد.
در صورت تعریف شدن کمیسیون به صورت مبلغ، مقدار این فیلد مشخص کننده مقدار آن خواهد بود
Payable
decimal
مبلغ نهایی
مبلغ این فیلد در حساب بدهکاری خریدار منظور می گردد و مبنای پرداخت های پولی می باشد.
FreeBaggage
Complex type
اطلاعات مربوط به بار مجاز رایگان
CheckedBaggage_Quantity
number
تعداد چمدان
CheckedBaggage_TotalWeight
number
مجموع وزن چمدان ها
HandBaggage_Quantity
number
تعداد کیف بار دستی
HandBaggage_TotalWeight
number
مجموع وزن کیف و بار دستی
JarimeCanceliTextFa
string
جدول جریمه های استرداد به زبان فارسی
JarimeCanceliTextEn
string
جدول جریمه های استرداد به زبان انگلیسی
CharterRoomList
List(Room)
در صورتی که رزرو شما با موفقیت صادر شده باشد، لیست اتاق ها در این فیلد خروجی داده می شود.
HotelSepehrGlobalId
number
Id منحصر به فرد هتل در سیستم سپهر
HotelName
string
نام هتل
RoomTypeSepehrGlobalId
number
Id منحصر به فرد نوع اتاق در سیستم سپهر
RoomTypeName
string
نام نوع اتاق
CheckinDate
string
تاریخ ورود با فرمت yyyy-MM-dd و به صورت میلادی
CheckoutDate
string
تاریخ خروج با فرمت yyyy-MM-dd و به صورت میلادی
PassengerList
List(Passenger)
لیست مسافران اسکان داده شده روی این اتاق
FirstName
string
نام مسافر
LastName
string
نام خانوادگی مسافر
AgeType
string
گروه سنی مسافر که شامل یکی از مقادیر ADL یا CHD یا INF می باشد
Gender
string
جنسیت مسافر که شامل یکی از مقادر M به معنی مذکر یا F به معنی مونث می باشد.
Birthdate
string
تاریخ تولد مسافر به صورت میلادی و با فرمت yyyy-MM-dd
NationalityCountry
string
کد دوحرفی کشور مربوط به ملیت مسافر
IranianCartMelli
complex type
کد ملی مسافر برای مسافران ایرانی
CodeMelli
string
کد ملی
Passport
complex type
اطلاعات مربوط به گذرنامه مسافر
Number
string
شماره گذرنامه
ExpiryDate
string
تاریخ انقضا گذرنامه به صورت میلادی و با فرمت yyyy-MM-dd
PlaceOfIssueCountry
string
کد دو حرفی محل صدور گذرنامه
PriceList
List(Price)
جزییات نرخ به ازای هر شب برای این اتاق
Date
string
تاریخ اقامت با فرمت yyyy-MM-dd و به صورت میلادی
Room_PriceBreakdown
complex type
جزییات نرخ اتاق
BoardPrice
decimal
نرخ برد اتاق (قبل از اعمال شدن کمیسیون و مالیات)
CommissionPercent
decimal
درصد کمیسیون
CalculatedAmountOfCommissionPercent
decimal
معادل مبلغی درصد کمیسیون
Discount
decimal
مبلغ تخفیف
Surcharge
decimal
مبلغ اضافه بها
NetPrice_TaxExcluded
decimal
نرخ خالص (بعد از کسر کمیسیون و قبل از اضافه شدن مالیات)
VAT_Percent
decimal
درصد مالیات ارزش افزوده
VAT_Amount
decimal
معادل مبلغی درصد مالیات ارزش افزوده
NetPrice_TaxIncluded
decimal
نرخ خالص نهایی (بعد از کسر کمیسیون و بعد از اضافه شدن مالیات)
Extrabed_PriceBreakdown
complex type
جزییات نرخ تخت اضافه
در صورتی که برای اتاق تخت اضافه در نظر گرفته شده باشد این فیلد مقدار خواهد داشت، در غیر این صورت null خواهد بود.
BoardPrice
decimal
نرخ برد اتاق (قبل از اعمال شدن کمیسیون و مالیات)
CommissionPercent
decimal
درصد کمیسیون
CalculatedAmountOfCommissionPercent
decimal
معادل مبلغی درصد کمیسیون
Discount
decimal
مبلغ تخفیف
Surcharge
decimal
مبلغ اضافه بها
NetPrice_TaxExcluded
decimal
نرخ خالص (بعد از کسر کمیسیون و قبل از اضافه شدن مالیات)
VAT_Percent
decimal
درصد مالیات ارزش افزوده
VAT_Amount
decimal
معادل مبلغی درصد مالیات ارزش افزوده
NetPrice_TaxIncluded
decimal
نرخ خالص نهایی (بعد از کسر کمیسیون و بعد از اضافه شدن مالیات)
{
"StatusId": 1,
"StatusDesc": "OK",
"Pnr": "S84W4W",
"FailReason": null,
"FlightPassengerList": [
{
"FirstName": "ROGHAYEH",
"LastName": "AKBARIZIARANI",
"AgeType": "ADL",
"Gender": "M",
"Birthdate": "1993-05-11",
"NationalityCountry": "IR",
"IranianCartMelli": {
"CodeMelli": "0012347000"
},
"Passport": null,
"CharterSegmentList": [
{
"TicketNumber": "1529323",
"FlightNumber": "240",
"FlightDate": "2023-05-12 12:30",
"OriginIataCode": "AWZ",
"DestinationIataCode": "IFN",
"CabinType": "Economy",
"BookingCode": "Y",
"FareName": "AWZIFN IR 100",
"AirlineIataCode": "IR",
"SaleInfo": {
"BaseFare": 1000000,
"Tax": 0,
"TotalFare": 1000000,
"CommisionPercent": 3,
"CalculatedAmountOfCommisionPercent": 30000,
"CommisionValue": 0,
"Payable": 970000
},
"FreeBaggage": {
"CheckedBaggage_Quantity": 1,
"CheckedBaggage_TotalWeight": 20,
"HandBaggage_Quantity": 1,
"HandBaggage_TotalWeight": 5
}
},
{
"TicketNumber": "1529324",
"FlightNumber": "3333",
"FlightDate": "2023-05-15 15:00",
"OriginIataCode": "IFN",
"DestinationIataCode": "AWZ",
"CabinType": "Economy",
"BookingCode": "H",
"FareName": "THRKIH ZV 450",
"AirlineIataCode": "B9",
"SaleInfo": {
"BaseFare": 4500000,
"Tax": 0,
"TotalFare": 4500000,
"CommisionPercent": 3,
"CalculatedAmountOfCommisionPercent": 135000,
"CommisionValue": 0,
"Payable": 4365000
},
"FreeBaggage": {
"CheckedBaggage_Quantity": 2,
"CheckedBaggage_TotalWeight": 20,
"HandBaggage_Quantity": 1,
"HandBaggage_TotalWeight": 7
}
}
],
"WebserviceSegmentList": []
},
{
"FirstName": "HAKIMEH",
"LastName": "SHIRZADISAFIABAD",
"AgeType": "ADL",
"Gender": "M",
"Birthdate": "1993-05-11",
"NationalityCountry": "IR",
"IranianCartMelli": {
"CodeMelli": "0011333235"
},
"Passport": null,
"CharterSegmentList": [
{
"TicketNumber": "1529325",
"FlightNumber": "240",
"FlightDate": "2023-05-12 12:30",
"OriginIataCode": "AWZ",
"DestinationIataCode": "IFN",
"CabinType": "Economy",
"BookingCode": "Y",
"FareName": "AWZIFN IR 100",
"AirlineIataCode": "IR",
"SaleInfo": {
"BaseFare": 1000000,
"Tax": 0,
"TotalFare": 1000000,
"CommisionPercent": 3,
"CalculatedAmountOfCommisionPercent": 30000,
"CommisionValue": 0,
"Payable": 970000
},
"FreeBaggage": {
"CheckedBaggage_Quantity": 1,
"CheckedBaggage_TotalWeight": 20,
"HandBaggage_Quantity": 1,
"HandBaggage_TotalWeight": 5
}
},
{
"TicketNumber": "1529326",
"FlightNumber": "3333",
"FlightDate": "2023-05-15 15:00",
"OriginIataCode": "IFN",
"DestinationIataCode": "AWZ",
"CabinType": "Economy",
"BookingCode": "H",
"FareName": "THRKIH ZV 450",
"AirlineIataCode": "B9",
"SaleInfo": {
"BaseFare": 4500000,
"Tax": 0,
"TotalFare": 4500000,
"CommisionPercent": 3,
"CalculatedAmountOfCommisionPercent": 135000,
"CommisionValue": 0,
"Payable": 4365000
},
"FreeBaggage": {
"CheckedBaggage_Quantity": 2,
"CheckedBaggage_TotalWeight": 20,
"HandBaggage_Quantity": 1,
"HandBaggage_TotalWeight": 7
}
}
],
"WebserviceSegmentList": []
}
],
"CharterRoomList": [
{
"HotelSepehrGlobalId": 101,
"HotelName": "ميراژ",
"RoomTypeSepehrGlobalId": 5001,
"RoomTypeName": "دو تخته رو به دريا",
"CheckinDate": "2023-05-12",
"CheckoutDate": "2023-05-15",
"PassengerList": [
{
"FirstName": "ROGHAYEH",
"LastName": "AKBARIZIARANI",
"AgeType": "ADL",
"Gender": "M",
"Birthdate": "1993-05-11",
"NationalityCountry": null,
"IranianCartMelli": {
"CodeMelli": "0012347000"
},
"Passport": null
},
{
"FirstName": "HAKIMEH",
"LastName": "SHIRZADISAFIABAD",
"AgeType": "ADL",
"Gender": "M",
"Birthdate": "1993-05-11",
"NationalityCountry": null,
"IranianCartMelli": {
"CodeMelli": "0011333235"
},
"Passport": null
}
],
"PriceList": [
{
"Date": "2023-05-12",
"Room_PriceBreakdown": {
"BoardPrice": 2000000,
"CommissionPercent": 0,
"CalculatedAmountOfCommissionPercent": 0,
"Discount": 0,
"Surcharge": 0,
"NetPrice_TaxExcluded": 2000000,
"VAT_Percent": 0,
"VAT_Amount": 0,
"NetPrice_TaxIncluded": 2000000
},
"Extrabed_PriceBreakdown": null
},
{
"Date": "2023-05-13",
"Room_PriceBreakdown": {
"BoardPrice": 2000000,
"CommissionPercent": 0,
"CalculatedAmountOfCommissionPercent": 0,
"Discount": 0,
"Surcharge": 0,
"NetPrice_TaxExcluded": 2000000,
"VAT_Percent": 0,
"VAT_Amount": 0,
"NetPrice_TaxIncluded": 2000000
},
"Extrabed_PriceBreakdown": null
},
{
"Date": "2023-05-14",
"Room_PriceBreakdown": {
"BoardPrice": 2000000,
"CommissionPercent": 0,
"CalculatedAmountOfCommissionPercent": 0,
"Discount": 0,
"Surcharge": 0,
"NetPrice_TaxExcluded": 2000000,
"VAT_Percent": 0,
"VAT_Amount": 0,
"NetPrice_TaxIncluded": 2000000
},
"Extrabed_PriceBreakdown": null
}
]
}
]
}
Response common exceptions
در جدول زیر لیستی از خطاهایی که ممکن است بعد از فراخوانی این متد برگشت داده شود، فهرست شده است.
| ExceptionType | توضیح خطا |
|---|---|
|
Exception |
خطای نامشخص. جهت دریافت اطلاعات بیشتر باید به ErrorMessage داخل json برگشتی مراجعه نمود. |