Đặt chỗ

Mô tả

- Truyền các tham số thông tin chuyến bay và thông tin hành khách để đặt giữ chỗ.

- Khách hàng cần cài đặt thông tin tài khoản đặt giữ chỗ các hãng nội địa và GDS trước khi thực hiện đặt chỗ.

- Hệ thống cung cấp 02 tính năng đặt chỗ:

  • Đặt chỗ với thông tin chuyến bay trả về từ API (FareDataId, FlightId,…)
  • Đặt chỗ với thông tin chuyến bay xác định (Số hiệu, hãng, giá vé…)

- Dữ liệu trả về bao gồm danh sách các Booking tương ứng với các chặng bay, mã lỗi, thời hạn giữ chỗ…

- Với các chuyến bay nội địa Việt Nam, hệ thống tự nhận biết để trả về 1 code hoặc 2 code booking nếu chuyến đi, chuyến về cùng hãng hoặc khác hãng.

Đặt chỗ với dữ liệu chuyến bay trả về từ API

Sử dụng XML Web Service

- Url web service: https://api.datacom.vn/FlightWS.asmx?op=Book

- Giao thức: POST

- Cấu trúc XML request

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Header>

<Authentication xmlns="http://tempuri.org/">

<HeaderUser>string</HeaderUser>

<HeaderPassword>string</HeaderPassword>

</Authentication>

</soap:Header>

<soap:Body>

<Book xmlns="http://tempuri.org/">

<Account>string</Account>

<Password>string</Password>

<Request>

<BookType>string</BookType>

<Itinerary>int</Itinerary>

<SessionDepart>string</SessionDepart>

<SessionReturn>string</SessionReturn>

<FareDataId>int</FareDataId>

<DepartFlightId>int</DepartFlightId>

<ReturnFlightId>int</ReturnFlightId>

<AutoIssueTicketDepart>boolean</AutoIssueTicketDepart>

<AutoIssueTicketReturn>boolean</AutoIssueTicketReturn>

<UseAgentContact>boolean</UseAgentContact>

<ListPassengers>

<Passenger>

<Index>int</Index>

<FirstName>string</FirstName>

<LastName>string</LastName>

<Type>string</Type>

<Gender>boolean</Gender>

<Email>string</Email>

<Phone>string</Phone>

<Birthday>dateTime</Birthday>

<PassportExpiryDate>dateTime</PassportExpiryDate>

<PassportIssueCountry>string</PassportIssueCountry>

<PassportNumber>string</PassportNumber>

<BaggageDeparture>string</BaggageDeparture>

<BaggageReturn>string</BaggageReturn>

Sử dụng JSON


</Passenger>

</ListPassengers>

<ContactInfo>

<Gender>boolean</Gender>

<FirstName>string</FirstName>

<LastName>string</LastName>

<Phone>string</Phone>

<Email>string</Email>

<ContactEmail>string</ContactEmail>

<Address>string</Address>

<Company>string</Company>

</ContactInfo>

</Request>

</Book>

</soap:Body>

</soap:Envelope>


- Url: https://api.datacom.vn/flight/book

- Giao thức: POST

- Tham số trên URL:

Trường thông tin

Mô tả

Kiểu dữ liệu

Ví dụ

account

Tài khoản

String

 

password

Mật khẩu

String

 

 

Ví dụ: https://api.datacom.vn/flight/book?account=demo@datacom.vn&password=xxx


Cấu trúc JSON request:

 

{

"BookType": "domestic", "Itinerary": 1,

"SessionDepart": "DEBUG1ALLHANDAD1301201814122017100", "SessionReturn": "DEBUG1ALLHANDAD1301201814122017100",

"FareDataId": 0,

"DepartFlightId": 0,

"ReturnFlightId": 0, "AutoIssueTicketDepart": false, "AutoIssueTicketReturn": false, "UseAgentContact": true, "ListPassengers": [

{

"Index": 1, "FirstName": "NGUYEN", "LastName": "THU HANG", "Type": "ADT",

"Gender": false,

"Email": "info@datacom.vn", "Phone": "1900 636615", "Birthday": "1986-03-12T00:00:00",

"PassportExpiryDate": "2020-01-01T00:00:00", "PassportIssueCountry": "VN", "PassportNumber": "123456789", "BaggageDeparture": "",

"BaggageReturn": ""

}

],

"ContactInfo": { "Gender": false, "FirstName": "NGUYEN", "LastName": "THU HANG", "Phone": "1900 636615",

"Email": "info@datacom.vn",


"ContactEmail": "info@datacom.vn",

"Address": "15A Nguyen Khang, Cau Giay, Hanoi", "Company": "DATACOM VIETNAM"

}

}

 

 

Bảng mô tả chi tiết ý nghĩa các tham số

 

Trường thông tin

Mô tả

Kiểu dữ liệu

Ví dụ

BookType

Kiểu chuyến bay:

  1. domestic: Nội địa
  1. international: Quốc tế

String

domestic

Itinerary

Kiểu hành trình. 1: là một chiều

2: là khứ hồi

Int

2

SessionDepart

Phiên làm việc chiều đi

String

 

SessionReturn

Phiên làm việc chiều về

String

 

FareDataId

Mã số lựa chọn giá

(Chuyến bay quốc tế)

Int

 

DepartFlightId

Mã chuyến bay chiều đi

Int

 

ReturnFlightId

Mã chuyến bay chiều về

Int

 

AutoIssueTicketDepart

Tự động xuất vé chiều đi

Boolean

 

AutoIssueTicketReturn

Tự động xuất vé chiều về

Boolean

 

UseAgentContact

Sử dụng liên hệ đại lý

Boolean

 

ListPassengers

Danh sách hành khách

Passenger[]

 

ContactInfo

Thông tin liên hệ

Contact

 

 

Đặt chỗ với thông tin chuyến bay xác định: Hãng hàng không, số hiệu, giá vé…

Sử dụng XML Web Service

- Url web service: https://api.datacom.vn/FlightWS.asmx?op=BookCustom

- Giao thức: POST

- Cấu trúc XML request

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Header>

<Authentication xmlns="http://tempuri.org/">

<HeaderUser>string</HeaderUser>

<HeaderPassword>string</HeaderPassword>

</Authentication>

</soap:Header>

<soap:Body>

<BookCustom xmlns="http://tempuri.org/">

<Account>string</Account>

<Password>string</Password>

<Request>

<Itinerary>int</Itinerary>

<StartPoint>string</StartPoint>

<EndPoint>string</EndPoint>

<DepartDate>dateTime</DepartDate>

<ReturnDate>dateTime</ReturnDate>

<Adt>int</Adt>

<Chd>int</Chd>

<Inf>int</Inf>

<AirlineDepart>string</AirlineDepart>

<AirlineReturn>string</AirlineReturn>


<FlightNumberDepart>string</FlightNumberDepart>

<FlightNumberReturn>string</FlightNumberReturn>

<PriceDepart>double</PriceDepart>

<PriceReturn>double</PriceReturn>

<AutoIssueTicketDepart>boolean</AutoIssueTicketDepart>

<AutoIssueTicketReturn>boolean</AutoIssueTicketReturn>

<UseAgentContact>boolean</UseAgentContact>

<CompareOnBaseFare>boolean</CompareOnBaseFare>

<ListPassengers>

<Passenger>

<Index>int</Index>

<FirstName>string</FirstName>

<LastName>string</LastName>

<Type>string</Type>

<Gender>boolean</Gender>

<Email>string</Email>

<Phone>string</Phone>

<Birthday>dateTime</Birthday>

<PassportExpiryDate>dateTime</PassportExpiryDate>

<PassportIssueCountry>string</PassportIssueCountry>

<PassportNumber>string</PassportNumber>

<BaggageDeparture>string</BaggageDeparture>

<BaggageReturn>string</BaggageReturn>

</Passenger>

</ListPassengers>

<ContactInfo>

<Gender>boolean</Gender>

<FirstName>string</FirstName>

<LastName>string</LastName>

<Phone>string</Phone>

<Email>string</Email>

<ContactEmail>string</ContactEmail>

<Address>string</Address>

<Company>string</Company>

</ContactInfo>

</Request>

</BookCustom>

</soap:Body>

</soap:Envelope>

Sử dụng JSON

- Url: https://api.datacom.vn/flight/book-custom

- Giao thức: POST

- Tham số trên URL:

Trường thông tin

Mô tả

Kiểu dữ liệu

Ví dụ

account

Tài khoản

String

 

password

Mật khẩu

String

 

 

Ví dụ: https://api.datacom.vn/flight/book- custom?account=demo@datacom.vn&password=xxx

Cấu trúc JSON request:

{

"Itinerary": 1, "StartPoint": "HAN",

"EndPoint": "DAD",

"DepartDate": "2018-01-13T00:00:00", "ReturnDate": "2018-01-16T00:00:00", "Adt": 1,

"Chd": 0,

"Inf": 0,

"AirlineDepart": "VJ",


"AirlineReturn": "VN", "FlightNumberDepart": "VJ519", "FlightNumberReturn": "VN7125", "PriceDepart": 400000.0,

"PriceReturn": 500000.0, "AutoIssueTicketDepart": false, "AutoIssueTicketReturn": false, "UseAgentContact": true, "CompareOnBaseFare": true, "ListPassengers": [

{

"Index": 1, "FirstName": "NGUYEN", "LastName": "THU HANG", "Type": "ADT",

"Gender": false,

"Email": "info@datacom.vn", "Phone": "1900 636615", "Birthday": "1986-03-12T00:00:00",

"PassportExpiryDate": "2020-01-01T00:00:00", "PassportIssueCountry": "VN", "PassportNumber": "123456789", "BaggageDeparture": "",

"BaggageReturn": ""

}

],

"ContactInfo": { "Gender": false, "FirstName": "NGUYEN", "LastName": "THU HANG", "Phone": "1900 636615",

"Email": "info@datacom.vn", "ContactEmail": "info@datacom.vn",

"Address": "15A Nguyen Khang, Cau Giay, Hanoi", "Company": "DATACOM VIETNAM"

}

}

 

Bảng mô tả chi tiết ý nghĩa các tham số

Trường thông tin

Mô tả

Kiểu dữ liệu

Ví dụ

Itinerary

Kiểu hành trình.

1: là một chiều 2: là khứ hồi

Int

2

StartPoint

Mã sân bay, thành phố đi

String

HAN

EndPoint

Mã sân bay, thành phố đến

String

SGN

DepartDate

Ngày đi

Datetime

2018-09-17

ReturnDate

Ngày về

Datetime

2018-09-22

Adt

Số khách người lớn (> 12 tuổi)

Int

1

Chd

Số khách trẻ em (2-12 tuổi)

Int

0

Inf

Số khách trẻ sơ sinh (0-2 tuổi)

Int

0

AirlineDepart

Hãng chiều đi

String

VN

AirlineReturn

Hãng chiều về

String

VJ

FlightNumberDepart

Số hiệu chuyến bay chiều đi

String

VN123

FlightNumberReturn

Số hiệu chuyến bay chiều về

String

VJ456

PriceDepart

Giá vé chiều đi

Double

599000

PriceReturn

Giá vé chiều về

Double

399000

AutoIssueTicketDepart

Tự động xuất vé chiều đi

Boolean

False

AutoIssueTicketReturn

Tự động xuất vé chiều về

Boolean

False

UseAgentContact

Sử dụng liên hệ đại lý

Boolean

True

CompareOnBaseFare

So sánh với giá cơ bản

Boolean

True

ListPassengers

Danh sách hành khách

Passenger[]

 


 

ContactInfo

Thông tin liên hệ

Contact

 

 

 

Bảng mô tả chi tiết ý nghĩa các thuộc tính của lớp Passenger

Trường thông tin

Mô tả

Kiểu dữ liệu

Ví dụ

Index

Số thứ tự

Int

0

FirstName

Họ của khách (không dấu,

không ký tự đặc biệt)

String

NGUYEN

LastName

Tên đệm & tên của khách (không dấu, không ký tự đặc

biệt)

String

THU HANG

Type

Loại hành khách ADT: Người lớn CHD: Trẻ em

INF: Trẻ sơ sinh

String

ADT

Gender

Giới tính True: Name

False: Nữ

Boolean

False

Email

Email khách bay

String

demo@email.com

Phone

Số điện thoại khách bay

String

0986668866

Birthday

Ngày sinh của khách

DateTime

12/03/1986

PassportExpiryDate

Ngày hết hạn hộ chiếu

DateTime

01/01/2020

PassportIssueCountry

Quốc tịch

String

VN

PassportNumber

Số hộ chiếu

String

123456789

BaggageDeparture

Gói hành lý muốn mua thêm

chuyến đi

String

15

BaggageReturn

Gói hành lý muốn mua thêm

chuyến về

String

15

 

Bảng mô tả chi tiết ý nghĩa các thuộc tính của lớp Contact

Trường thông tin

Mô tả

Kiểu dữ liệu

Ví dụ

FirstName

Họ của khách (không dấu,

không ký tự đặc biệt)

String

NGUYEN

LastName

Tên đệm & tên của khách

(không dấu, không ký tự đặc biệt)

String

THU HANG

Gender

Giới tính True: Name

False: Nữ

Boolean

False

Email

Email người đặt vé

String

demo@email.com

Phone

Số điện thoại khách bay

String

0986668866

ContactEmail

Email liên hệ

String

demo@email.com

Address

Địa chỉ (dưới 50 ký tự)

String

15A Nguyen Khang, Hanoi

Company

Tên công ty (dưới 50 ký tự)

String

YOUR COMPANY

Cấu trúc dữ liệu trả về

Dạng XML

 

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>

<BookResponse xmlns="http://tempuri.org/">

<BookResult>


<PNR>

<OrderId>int</OrderId>

<BookingCode>string</BookingCode>

<ErrorMessage>string</ErrorMessage>

<ExpiryDate>dateTime</ExpiryDate>

<Airline>string</Airline>

<Status>string</Status>

<BookingImage>string</BookingImage>

</PNR>

<PNR>

<OrderId>int</OrderId>

<BookingCode>string</BookingCode>

<ErrorMessage>string</ErrorMessage>

<ExpiryDate>dateTime</ExpiryDate>

<Airline>string</Airline>

<Status>string</Status>

<BookingImage>string</BookingImage>

</PNR>

</BookResult>

</BookResponse>

</soap:Body>

</soap:Envelope>

 

Dạng JSON

[

{

"OrderId": 545665,

"Airline": "VN", "BookingCode": "FHYIAW", "ErrorMessage": "",

"ExpiryDate": "2017-12-14T16:08:12.2008989+07:00",

"Status": "OK"

},

{

"OrderId": 545665,

"Airline": "VJ", "BookingCode": "857485746", "ErrorMessage": "",

"ExpiryDate": "2017-12-14T16:08:12.2008989+07:00",

"Status": "OK"

}

]

 

Bảng mô tả chi tiết ý nghĩa các thuộc tính của lớp PNR

Trường thông tin

Mô tả

Kiểu dữ liệu

Ví dụ

OrderId

Mã đơn hàng

Int

35064980

BookingCode

Mã đặt chỗ

String

XU7H5T

ExpiryDate

Ngày hết hạn

DateTime

2016-07-14T21:14:54

ErrorMessage

Mã lỗi

String

004

Airline

Hãng hàng không

String

VN

Status

Trạng thái (OK/FAIL)

String

OK

BookingImage

Mặt booking (VN)

String

 

 

 Lưu ý:

 

  1. Nếu Status = OK: đặt chỗ thành công
  1. Nếu Status = FAIL: đặt chỗ thất bại

Tags:

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