5.1 Đặt chỗ tiêu chuẩn

Đặt chỗ tiêu chuẩn

5.1. Đặt chỗ tiêu chuẩn

Mô tả
▪ Tính năng này cho phép đặt giữ chỗ với thông tin chuyến bay từ kết quả tìm kiếm API trả về.

▪ Khi đối tác thực hiện tìm kiếm chuyến bay, hệ thống Booking Engine sẽ lưu kết quả tìm kiếm theo từng phiên làm việc (Session) trên máy chủ của Datacom, đối tác truyền lên mã số dữ liệu FareData, Flight đã lựa chọn, hệ thống Booking Engine của Datacom sẽ tìm chính xác thông tin chuyến bay khách hàng đã lựa chọn và tiến hành đặt chỗ.
▪ Thời gian hiệu lực tối đa cho mỗi Session tìm kiếm có thể sử dụng để đặt chỗ là 180 phút.

Kết nối
▪ URL: http://platform.datacom.vn/flights/book

▪ Giao thức: POST

▪ Cấu trúc dữ liệu gửi đi: BookRequest

{
"BookType": "string",
"UseAgentContact": true,
"Remark": "string",
"Contact": {
"Gender": true,
"FirstName": "string",
"LastName": "string",
"Area":"string",
"Phone": "string",
"Email": "string",
"Address": "string"
},
"ListPassenger": [
{
"Index": 0,
"FirstName": "string",
"LastName": "string",
"Type": "string",
"Gender": true,
"Birthday": "string",
"ListBaggage": [
{
"Airline": "string",
"Leg": 0,
"Route": "string",
"Code": "string",
"Currency": "string",
"Name": "string",
"Price": 0,
"Value": "string"
}
]
}
],
"ListFareData": [
{

"Session": "string",
"FareDataId": 0,
"AutoIssue": true,
"ListFlight": [
{
"FlightValue": "string"
}
]
}
],
"HeaderUser": "string",
"HeaderPass": "string",
"ProductKey": "string",


P a g e 28 | 57

"Language": "string",
"AgentAccount": "string",
"AgentPassword": "string"
}


Bảng mô tả cấu trúc dữ liệu BookRequest

Trường thông tin
Bắt buộc
Mô tả
Kiểu dữ liệu
Ví dụ
BookType
Kiểu đặt chỗ:
string[] 
book-normal
UseAgentContact
Sử dụng thông tin liên
hệ của đại lý khi đặt
chỗ
bool
True
Contact
Thông tin liên hệContact

ListPassenger
Danh sách hành khách Passenger[]

ListFareData
Danh sách lựa chọn giáFareDataInfo[]

Thông tin xác thực
API

Xem mô tả ở mục

Các thuộc tính dùng chung


Bảng mô tả cấu trúc dữ liệu Contact

Trường thông tin
Bắt buộc
Mô tả
Kiểu dữ liệu
Ví dụ
Gender
Danh xưng:
True – Ông, False – Bà

bool 
True
FirstName
Họ người liên hệ stringNGOC LINH
LastName
Tên người liên hệ  string
TRAN
AreaMã vùng điện thoạistring+84
Phone
Số điện thoại string
912345678
Email Địa chỉ emailstring
linh@mail.com
Address
Địa chỉ liên hệ string
Dong Da, Hanoi 


Bảng mô tả cấu trúc dữ liệu Passenger

Trường thông tin
Bắt buộc
Mô tả
Kiểu dữ liệu
Ví dụ
Index
Số thứ tự trong danh sách
int 
0
FirstName
Họ string NGOC LINH
LastName
Tên đệm và tên string
TRAN
Type
Loại khách
ADT, CHD, INF
string
ADT
Gender
Giới tính:
True – Nam, False – Nữ
bool
True
Birthday
Tùy chọn  Ngày sinh
Định dạng ddMMyyyy
string
15061988 
ListBaggage
Không Danh sách hành lý ký gửi Baggage[]

Bảng mô tả cấu trúc dữ liệu Baggage

Trường thông tin
Bắt buộc
Mô tả
Kiểu dữ liệu
Ví dụ
Airline
Mã hàng hàng không
string 
VJ
Leg
Không  Thứ tự chuyến bay int 0
Route
Giá trị chặng bay string
HANSGN
Code  Mã gói hành lý string
15
Currency
Không  Mã tiền tệ string
VND
Name
Không  Tên gói hành lý string
15kg
baggage
Price
Giá tiền gói hành lý double 154.000
Value  Số cân nặng gói hành lý string
15kg

Bảng mô tả cấu trúc dữ liệu FareDataInfo

Trường thông tin
Bắt buộc
Mô tả
Kiểu dữ liệu
Ví dụ
Session
Phiên làm việc
string
DC0001HAN…
FareDataId
Mã định danh lựa chọn
giá
int 15
AutoIssue
Đặt chỗ và xuất vé luôn
chuyến bay này
bool  False
ListFlight
Danh sách chuyến bay
lựa chọn
FlightInfo[]

Bảng mô tả cấu trúc dữ liệu FlightInfo

Trường thông tin
Bắt buộc
Mô tả
Kiểu dữ liệu
Ví dụ
FlightValue
Giá trị chuyến bay
string 

1VJ123HAN…


▪ Lưu ý:

- Thông tin FirstName, LastName của hành khách không có dấu tiếng Việt, không chứa số, không chứa ký tự đặc biệt. Đối tác cần nhập vào chính xác tên đầy đủ của hành khách. Không test với dữ liệu phản cảm (aaaaa, bbbb…).

- Khách hàng nên truyền đúng tên hành khách theo định dạng:

+ FirstName (Tên đệm và tên): NGOC LINH

+ LastName (Họ): TRAN

- Lưu ý đối với 2 trường thông tin "Area" và "Phone" trong "Contact":

+ Đối với trường "Area", những số điện thoại tại Việt Nam khi truyền vào khách hàng phải truyền đúng giá trị "+84", còn những số điện thoại tại quốc gia khác khách hàng truyền "Area" theo mã quốc gia của số điện thoại được truyền đi.

+ Đối với trường "Phone", những số điện thoại tại Việt Nam khi truyền vào phải bỏ số "0" ở đầu số. Ví dụ: "904941298"

- Nếu UseAgentContact = True: Hệ thống Booking Engine sẽ lấy thông tin đối tác đã đăng ký tài khoản sử dụng trên hệ thống Datacom để đặt chỗ (Email, Phone, Address).

- Các thông tin liên hệ: Email, Phone, Address phải là dữ liệu hợp lệ, không test với dữ liệu phản cảm (aaaaa@aaa.com, aaaa bbbb, 11112222…). Thông tin liên hệ này để các hãng hàng không gửi thông báo về việc thay đổi chuyến bay cho hành khách, truyền dữ liệu thật nhất có thể.

- Nếu tham số AutoIssue = true: Hệ thống sẽ đặt chỗ và xuất vé luôn (thanh toán bằng tài khoản đại lý) cho chặng bay này. Trong trường hợp các loại giá vé khuyến mại, chuyến bay sát giờ khởi hành, các hãng LCC không cho giữ chỗ, đối tác có thể sử dụng tính năng này để đặt và xuất vé luôn.

- Đối tác cần thận trọng khi sử dụng tính năng này, vì vé xuất sẽ là vé thật và tài khoản đại lý sẽ bị trừ tiền khi xuất vé.

- Vui lòng liên hệ với bộ phận hỗ trợ của Datacom nếu gặp bất cứ khó khăn gì trong quá trình tích hợp đặt chỗ.


Kết quả trả về
▪ Cấu trúc dữ liệu trả về: BookResponse


{
"BookingId": 0,
"ListBooking": [
{
"Status": "string",
"Airline": "string",
"BookingCode": "string",
"GdsCode": "string",
"Flight": "string",
"Route": "string",
"ErrorCode": "string",

"ErrorMessage": "string",
"BookingImage": "string",
"ExpiryDate": "2019-05-31T06:44:02.464Z",
"ResponseTime": 0,
"System": "string",
"Price": 0,
"Difference": 0,
"ListTicket": [
{
"Index": 0,
"Airline": "string",
"TicketNumber": "string",
"IssueDate": "2019-05-31T06:44:02.464Z",
"BookingCode": "string",


P a g e 30 | 57

"PassengerName": "string",
"BookingFile": "string",
"TicketImage": "string",
"TotalPrice": 0,
"Status": "string",
"ErrorMessage": "string"
}
],
"Session": "string",
"FareData": {
"FareDataId": 0,
"Airline": "string",
"Itinerary": 0,
"Leg": 0,
"Promo": true,
"Currency": "string",
"System": "string",
"Adt": 0,
"Chd": 0,

"Inf": 0,
"FareAdt": 0,
"FareChd": 0,
"FareInf": 0,
"TaxAdt": 0,
"TaxChd": 0,
"TaxInf": 0,
"FeeAdt": 0,
"FeeChd": 0,
"FeeInf": 0,
"ServiceFeeAdt": 0,
"ServiceFeeChd": 0,
"ServiceFeeInf": 0,
"TotalNetPrice": 0,
"TotalServiceFee": 0,
"TotalPrice": 0,
"ListFlight": [
{
"FlightId": 0,
"Leg": 0,
"Airline": "string",
"StartPoint": "string",
"EndPoint": "string",
"StartDate": "2019-05-31T06:44:02.464Z",
"EndDate": "2019-05-31T06:44:02.464Z",
"FlightNumber": "string",
"StopNum": 0,
"HasDownStop": true,
"Duration": 0,
"NoRefund": true,
"GroupClass": "string",
"FareClass": "string",
"Promo": true,
"FlightValue": "string",
"ListSegment": [

{
"Id": 0,
"Airline": "string",
"StartPoint": "string",
"EndPoint": "string",
"StartTime": "2019-05-31T06:44:02.464Z",
"EndTime": "2019-05-31T06:44:02.464Z",
"FlightNumber": "string",
"Duration": 0,
"Class": "string",
"Plane": "string",
"StartTerminal": "string",
"EndTerminal": "string",
"HasStop": true,

"StopPoint": "string",
"StopTime": 0,
"DayChange": true,
"StopOvernight": true,
"ChangeStation": true,
"ChangeAirport": true,
"LastItem": true,
"HandBaggage": "string"
}
]
}
]
}
}
],
"Status": true,
"ErrorCode": "string",
"Message": "string",
"Language": "string"

}


▪ Đặc tả cấu trúc dữ liệu trả về



Bảng mô tả cấu trúc dữ liệu BookRespondse

Trường thông
tin


tả

Kiểu dữ
liệu


dụ

Status
Kết quả kết nối
bool
True
ErrorCode
Mã lỗi (nếu có)  string 
Message
Thông báo lỗi (nếu có)  string 
BookingId
Mã giao dịch trên hệ thống
Datacom

int 999999
ListBooking
Danh sách đặt chỗ
Booking 

Bảng mô tả cấu trúc dữ liệu VerifyRespondse

Trường thông
tin


tả

Kiểu dữ
liệu


dụ

Status
Trạng thái giữ chỗ
OK: Giữ chỗ thành công
FAIL: Giữ chỗ lỗi
bool
OKTrue
Airline
Mã hãng hàng không  string  VN
BookingCode
Thông báo lỗi (nếu có)  string  HWBGTD
GdsCode
Mã đặt chỗ trên hệ thống
GDS
string  
Flight
Thông tin chuyến bay của
booking
string  
Route
Chặng bay của booking
string  HANSGN|SGNHAN
ErrorMessage
Thông báo lỗi (nếu có)
string 
BookingImage
Mặt booking (Sabre)
string 
ExpiryDate
Ngày hết hạn
DateTime[] 
ResponseTime
Thời gian xử lý (giây)
double  8.79
System
Hệ thống giữ chỗ
string  Sabre
Price
Tổng giá mới nhất của
chuyến bay
double   1250000
Difference
Chênh lệch giá vé nếu có
double  0
Session
Phiên làm việc với giá vé mới string  DTC123VNHANSGN
FareData
Thông tin về chuyến bay mới nhất FareData 
ListTicket
Danh sách vé nếu chọn chế
độ xuất vé tự động
Ticket[] 


Vui lòng xem mô tả cấu trúc dữ liệu Ticket ở mục 6. Xuất vé


▪ Lưu ý:

- API trả về mã số giao dịch BookingId. Mã này sẽ được sử dụng để truy xuất dữ liệu booking trên hệ thống của Datacom.

- API trả về danh sách thông tin đặt chỗ PNR (Passenger Name Record):

o Nếu Status = OK: Đặt chỗ thành công.

o Nếu Status = FAIL: Đặt chỗ không thành công.

- BookingCode: Mã giữ chỗ trên hãng hàng không.

- GdsCode: Mã giữ chỗ trên hệ thống GDS. Lưu ý về GdsCode:

o Các chuyến bay nội địa hoặc quốc tế trên các hãng hàng không LCC, hệ

thống không có thông tin GdsCode

o Các chuyến bay quốc tế trên GDS: Hệ thống có thể có nhiều BookingCode của từng hãng cho từng chặng bay. Trong trường hợp hệ thống GDS

(Galileo) chưa kết nối được tới hãng hàng không để lấy về mã đặt chỗ từ hãng, API sẽ chỉ trả về GdsCode mà không trả về BookingCode.

- Khách hàng cần kiểm tra mã lỗi, thông báo lỗi để biết được nguyên nhân đặt chỗ không thành công.

- BookingImage: Sẽ được trả về tùy dữ liệu của hãng hàng không, hệ thống giữ chỗ.

- System: Hệ thống giữ chỗ

o lowcost: Giữ chỗ trên hệ thống web agent của các hãng LCC.

o sahre: Giữ chỗ hãng VN trên hệ thống Sabre.

o galileo: Giữ chỗ trên hệt hống GDS Galileo.

- ListTicket: Nếu AutoTicket = True, API sẽ trả về danh sách vé xuất kèm booking.

- Flight: Thông tin giá trị chuyến bay của booking, giá trị được lấy từ trường FlightValue trong request đặt chỗ. Nếu booking khứ hồi, các giá trị chuyến bay sẽ

được ngăn cách nhau bởi ký tự |. Ví dụ:

o Một chiều:0VJ163J_EcoHANSGN201907202010

o Khứ hồi:0VN163PHANSGN201907| 1VN172THANSGN2019072

- Route: Thông tin chặng bay của booking, chặng bay sẽ được ghép từ cặp mã sân bay khởi hành và sân bay hạ cánh của chặng bay. Nếu booking khứ hồi, các chặng bay sẽ

được ngăn cách nhau bởi ký tự |. Ví dụ:


o Một chiều: HANSGN

o Khứ hồi: HANSGN|SGNHAN


- FareData: Thông tin chuyến bay mới nhất còn tồn tại.

- Session: Phiên làm việc với giá vé mới nhất, sử dụng thông tin này để thực hiện đặt chỗ với giá vé mới nhất trong trường hợp giá vé hoặc chuyến bay bị thay đổi.

Tags:

Hướng dẫn kết nối API dữ liệu vé máy bay Datacom