এই ভলিউমে · ভলিউম 07
ইন্টিগ্রেশন
GDS (Amadeus, Sabre) NDC পাবলিক API ওয়েবহুক

অধ্যায় ৭.১ — GDS (Amadeus, Sabre)

১. উদ্দেশ্য

GDS (Global Distribution System) — এয়ারলাইন ইনভেন্টরি এবং বুকিংয়ের কেন্দ্রীয় সিস্টেম। travoBooks Amadeus, Sabre, এবং Travelport সমর্থন করে।

২. সরবরাহকারী-অ্যাগনস্টিক আর্কিটেকচার

travoBooks-এ একটি SupplierClient interface যা প্রতিটি GDS-এর জন্য concrete implementation:

interface SupplierClient {
  public function search(SearchRequest $req): SearchResponse;
  public function priceQuote(PriceRequest $req): PriceResponse;
  public function bookHold(HoldRequest $req): HoldResponse;
  public function issueTicket(IssueRequest $req): IssueResponse;
  public function void(VoidRequest $req): VoidResponse;
  public function refund(RefundRequest $req): RefundResponse;
}

Implementations: AmadeusClient, SabreClient, TravelportClient, NDCClient

৩. Amadeus

প্রোটোকল: SOAP + WS-Security মূল এন্ডপয়েন্ট: - Fare_MasterPricerTravelBoardSearch — flight search - Air_SellFromRecommendation — booking - Fare_PricePNRWithBookingClass — pricing - DocIssuance_IssueTicket — ticketing - Air_Cancel — cancellation

PHP ক্লায়েন্ট: IttAMASearch কাস্টম ক্লাস: - SOAP envelope construction - WS-Security headers (username + password digest) - Response XML পার্সিং - Fare family resolution per segment - Roundtrip segment handling

৪. Sabre

প্রোটোকল: REST + OAuth2 Authentication: Bearer token (1 ঘণ্টা মেয়াদ) PCC (Pseudo City Code): প্রতি অনুরোধে অন্তর্ভুক্ত

মূল এন্ডপয়েন্ট: - /v1/offers/shop — search - /v2/passenger/records — PNR ব্যবস্থাপনা - /v1.0.0/passenger/records/{pnr}/tickets — ticketing

৫. Travelport (uAPI)

প্রোটোকল: SOAP/REST API ফ্যামিলি: Universal API (uAPI), Galileo Web Services

৬. ক্রেডেনশিয়াল ম্যানেজমেন্ট

প্রতি সরবরাহকারী + প্রতি পার্টনার: - supplier_credentials টেবিলে এনক্রিপ্টেড (AWS KMS) - Office ID / PCC - API username/password - Endpoint URL (test/prod)

ডেভেলপমেন্ট-এ ক্রেডেনশিয়াল কখনো লগ করা হয় না।

৭. রিকোয়েস্ট/রেসপন্স লগিং

প্রতিটি GDS কল: - supplier_request_log রো - Request payload (PII মাস্কড) - Response code & timing - Booking ID, ticket numbers reference

ডিবাগিং, অরফান ট্র্যাকিং, পারফরম্যান্স মনিটরিংয়ের জন্য।

৮. ইস্যুয়েন্স প্যাটার্ন

(অধ্যায় ৪.১ এবং ৪.২ এ বিস্তারিত)

মূল নিয়ম: GDS কল ডিবি ট্রানজ্যাকশনের বাইরে। Reconciler অরফান টিকেট ধরে।

৯. রেট লিমিট

প্রতি GDS-এর rate limit (per second/minute/day)। travoBooks: - Token bucket per partner per supplier - Burst handling - 429 response → exponential backoff retry

১০. সাধারণ ফাঁদ

  • ⚠️ ক্রেডেনশিয়াল লগে — অডিট ক্যাচ
  • ⚠️ Test endpoint → production booking — ভুল ডেটা
  • ⚠️ Retry idempotency ছাড়া — ডবল ইস্যুয়েন্স
  • ⚠️ GDS timeout-এ failure assume — কখনো partial success