หากต้องการผสานรวมข้อมูลราคาและห้องว่าง พาร์ทเนอร์จะต้อง ใช้ Partner API อินเทอร์เฟซนี้อิงตาม REST และอนุญาตให้ Google ส่งการโทรสดผ่าน HTTP แม้ว่ารายละเอียดของเมธอด API แต่ละรายการจะอธิบายไว้ในส่วนข้อมูลอ้างอิง แต่คุณจะดูข้อมูลเกี่ยวกับปัญหาที่เกี่ยวข้องได้ในภายหลัง
รูปแบบคำขอและการตอบกลับ
โดยในระยะแรกจะรองรับเฉพาะรูปแบบ JSON หากต้องการรูปแบบคำขอหรือการตอบกลับเพิ่มเติม โปรดติดต่อทีมการเดินทางของ Travel ที่ transport-help@google.com เพื่อพูดคุยเกี่ยวกับกรณีการใช้งานของคุณ
ระบบจะส่งคำขอโดยใช้เมธอด HTTP POST พร้อมข้อความคำขอใน เนื้อหา POST
โปรดทราบว่าเพื่อความชัดเจนด้านโครงสร้าง เอกสารประกอบของอินเทอร์เฟซ API จะมีให้ในรูปแบบ คำจำกัดความของข้อความบัฟเฟอร์โปรโตคอล และการแปลคำจำกัดความของข้อความบัฟเฟอร์โปรโตคอล เป็นออบเจ็กต์ JSON จะกำหนดโดยการแมป JSON ที่เป็นมาตรฐาน โดยใช้ ตัวเลือก เพื่อส่งฟิลด์ที่มีค่าเริ่มต้นและเพื่อใช้ชื่อฟิลด์ Proto แทนชื่อ lowerCamelCase
การตรวจสอบสิทธิ์
Google รองรับการตรวจสอบสิทธิ์ HTTP Digest และการตรวจสอบสิทธิ์ใบรับรองไคลเอ็นต์ การเรียก HTTP ทั้งหมดของ Partner API จะใช้การตรวจสอบสิทธิ์ HTTP Digest (ด้วยชื่อผู้ใช้และรหัสผ่าน) หรือการตรวจสอบสิทธิ์ใบรับรองไคลเอ็นต์ พาร์ทเนอร์ควรระบุชื่อผู้ใช้และรหัสผ่านให้ Google (ดูการกำหนดค่าพาร์ทเนอร์) หรือใบรับรองไคลเอ็นต์ SSL ตามลำดับ
รหัสสถานะและการจัดการข้อผิดพลาด
โดยทั่วไปแล้ว ระบบจะแสดงรหัสสถานะต่อไปนี้ในการตอบกลับ HTTP
รหัส HTTP | คำอธิบาย HTTP | หมายเหตุ |
---|---|---|
2xx | ตกลง | ไม่ใช่ข้อผิดพลาด แต่จะแสดงผลเมื่อสำเร็จ เนื้อหาการตอบกลับควรมีผลลัพธ์ที่สำเร็จ (เช่น TripOptionsResult) ไม่ใช่การตอบกลับข้อผิดพลาด |
400 | คำขอไม่ถูกต้อง | คำขอที่ได้รับไม่ถูกต้อง ควรใช้การตอบกลับข้อผิดพลาดเฉพาะเมธอด เพื่อแสดงรายละเอียดข้อผิดพลาดเพิ่มเติมในเนื้อหาการตอบกลับ โดยทั่วไปแล้ว ควรใช้ HTTP 400 ในกรณีที่ Google ทำข้อผิดพลาดทางเทคนิคเท่านั้น (เช่น ตั้งชื่อฟิลด์ในคำขอผิด) |
403 | ห้ามใช้ | สิทธิ์ถูกปฏิเสธ/ไม่อนุญาต (ระบบรู้จักผู้โทรและปฏิเสธ) ห้ามใช้การตอบกลับนี้ สำหรับการปฏิเสธที่เกิดจากการใช้ทรัพยากรบางอย่างจนหมด (ใช้ Too Many Requests แทนสำหรับข้อผิดพลาดเหล่านั้น) ห้ามใช้ Forbidden หากระบุผู้โทรไม่ได้ (ให้ใช้ Unauthorized แทนสำหรับข้อผิดพลาดเหล่านั้น) |
404 | ไม่พบ | ไม่พบทรัพยากรที่ขอ ควรใช้การตอบกลับข้อผิดพลาดเฉพาะเมธอดเพื่อแสดงรายละเอียดข้อผิดพลาดเพิ่มเติมในเนื้อหาการตอบกลับ |
429 | มีคำขอมากเกินไป | ทรัพยากรบางอย่างหมดแล้ว อาจเป็นโควต้าต่อผู้ใช้ |
500 | ข้อผิดพลาดภายในเซิร์ฟเวอร์ | ข้อผิดพลาดภายใน ซึ่งหมายความว่าระบบพื้นฐานได้ละเมิดข้อกำหนดบางอย่างที่คาดไว้ รหัสข้อผิดพลาดนี้สงวนไว้สำหรับ ข้อผิดพลาดร้ายแรงและบ่งชี้ถึงข้อบกพร่องในการติดตั้งใช้งานเซิร์ฟเวอร์ API ของพาร์ทเนอร์ |
503 | ไม่สามารถให้บริการได้ | บริการไม่พร้อมใช้งาน ซึ่งมักเป็นเงื่อนไขชั่วคราว ที่แก้ไขได้โดยการลองอีกครั้งด้วยการหยุดชั่วคราว |
504 | เกตเวย์หมดเวลา | กำหนดเวลาหมดอายุก่อนที่การดำเนินการจะเสร็จสมบูรณ์ สำหรับการดำเนินการที่เปลี่ยนสถานะของระบบ ระบบอาจแสดงข้อผิดพลาดนี้แม้ว่าการดำเนินการจะเสร็จสมบูรณ์แล้วก็ตาม ตัวอย่างเช่น การตอบกลับที่สำเร็จจากเซิร์ฟเวอร์อาจล่าช้าจน กำหนดเวลาหมดอายุ |
โปรดทราบว่าสำหรับข้อกำหนดเบื้องต้น อาร์กิวเมนต์ที่ไม่ถูกต้อง หรือข้อผิดพลาด "ไม่พบ" ทั้งหมด
- ควรใช้การตอบกลับหรือข้อความแสดงข้อผิดพลาดที่เฉพาะเจาะจงกับเมธอดซึ่งกำหนดไว้ใน API
- ควรใช้รหัส HTTP ที่ถูกต้องตามที่ระบุไว้ในรหัสเฉพาะของเมธอด (ดู
TripOptionsErrorType
เช่น)
ซึ่งจะช่วยให้เราให้ข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับข้อผิดพลาดประเภทนี้ได้ ข้อมูลนี้สามารถใช้เพื่อ
- ตรวจสอบว่าลองส่งคำขออีกครั้งได้หรือไม่
SEGMENT_KEY_NOT_FOUND
ลองอีกครั้งไม่ได้
- แก้ไขข้อมูลที่ล้าสมัย
Unavailable.Reason.CANCELED
บ่งบอกว่าควรนำการเดินทางออก (โปรดทราบว่านี่เป็นส่วนหนึ่งของการตอบกลับที่สำเร็จ)Unavailable.Reason.TEMPORARILY_UNAVAILABLE
รวมถึงรหัสข้อผิดพลาดSEGMENT_KEY_NOT_FOUND
,SUBOPTIMAL_ITINERARY
,BOOKING_WINDOW_NOT_SUPPORTED
และTICKETING_PROHIBITED
จะนำ ราคาที่เราได้รับก่อนหน้านี้จากแคชออก
- ให้คำแนะนำที่เกี่ยวข้องแก่ผู้ใช้
รายการข้อผิดพลาดเฉพาะเมธอดปัจจุบันที่ระบุไว้ใน
TripOptionsError
เป็นจุดเริ่มต้น หากต้องการข้อผิดพลาดประเภทอื่นๆ โปรดติดต่อ
ทีมการเดินทางของ Google
QPS (จำนวนคำค้นหาต่อวินาที)
ระดับ QPS ที่ Google ส่งมีแนวโน้มที่จะแตกต่างกันไปตามพื้นที่โฆษณาของพาร์ทเนอร์และ จำนวนผู้ใช้ที่ดูข้อมูลที่แคชไว้หรือคลิกผ่านไปยังเว็บไซต์ของพาร์ทเนอร์เพื่อ ทำการจอง
เวลาในการตอบสนอง
คำขอจะหมดเวลาหลังจากผ่านไป 10 วินาที จะไม่มีหลักเกณฑ์ด้านเวลาในการตอบสนองเพิ่มเติม สำหรับการผสานรวมพาร์ทเนอร์เวอร์ชันเบต้า อย่างไรก็ตาม เราจะกำหนด SLO ความหน่วงเพิ่มเติมในหลักเกณฑ์ด้านคุณภาพของข้อมูลพาร์ทเนอร์
สกุลเงิน ภาษี และค่าธรรมเนียม
ราคาทั้งหมดที่ส่งไปยัง Google ต้องรวมภาษีและค่าธรรมเนียมทั้งหมด และต้องระบุใน สกุลเงินที่รองรับ
สกุลเงิน
สกุลเงินสำหรับราคาจะระบุโดยใช้ฟิลด์ currency_code
ซึ่งต้องเป็นรหัสสกุลเงิน ISO 4217 ที่ถูกต้อง
ตัวอย่าง 10.25 USD:
{
"price": {
"currency_code": "USD",
"units": 10,
"nanos": 250000000
}
}
ภาษีและค่าธรรมเนียม
ราคาที่คุณระบุต้องเป็นราคารวมสุดท้ายที่ผู้ใช้จะชำระ
รวมภาษีทั้งหมด (เช่น VAT) และค่าธรรมเนียมเพิ่มเติม (เช่น ค่าธรรมเนียมการจองหรือ
ค่าธรรมเนียมบัตรชำระเงิน) คุณเพิ่มรายละเอียดค่าโดยสารที่ไม่บังคับได้โดยใช้ฟิลด์ที่ทำซ้ำได้
line_items
Google จะแสดงราคารวมพร้อมรายละเอียดค่าโดยสาร (ไม่บังคับ) ต่อผู้ใช้