ทดลองใช้งานจริง

API ชำระเงินสำหรับธุรกิจท่องเที่ยว

API เกตเวย์ชำระเงินสำหรับการจองท่องเที่ยว: ตั้งแต่เช็กเอาต์จนถึงคืนเงิน

API เกตเวย์ชำระเงินคือวิธีที่เว็บไซต์จองของคุณรับเงินจากนักเดินทางโดยไม่ต้องแตะข้อมูลบัตรเลย หน้านี้อธิบายการเรียก API ของการชำระเงินด้วยบัตรหนึ่งรายการ สถานะที่การชำระเงินผ่านไป เหตุผลที่การชำระเงินด้านท่องเที่ยวยากกว่าค้าปลีก และวิธีที่ PHPTRAVELS เชื่อมขั้นตอนการจองของคุณเข้ากับเกตเวย์ที่คุณเลือก

  • เซสชัน 3-D Secure การเรียกเก็บเงิน
  • ทุกสถานะการชำระเงิน
  • บัตร วอลเล็ต ธนาคาร เครดิต
  • ไม่มีข้อมูลบัตรบนเซิร์ฟเวอร์ของคุณ

การเรียก API ทำงานอย่างไร

การชำระเงินด้วยบัตรหนึ่งรายการ ทีละการเรียก

API เกตเวย์ชำระเงินคือชุดเว็บเซอร์วิสที่บริษัทชำระเงินเปิดให้ร้านค้า เซิร์ฟเวอร์ของคุณขอให้สร้างการชำระเงินตามยอดและสกุลเงิน นักเดินทางกรอกบัตรในฟอร์มของเกตเวย์เอง แล้วเกตเวย์จะติดต่อเครือข่ายบัตรและธนาคารผู้ออกบัตร เซิร์ฟเวอร์ของคุณไม่เคยเห็นหมายเลขบัตร ได้รับเพียงรหัสการชำระเงินและสถานะ

มีสี่ฝ่ายเกี่ยวข้อง แผนภาพแสดงแต่ละฝ่ายเป็นคอลัมน์ และแต่ละข้อความเป็นลูกศรที่มีหมายเลข ชื่อเรียกต่างกันไปตามเกตเวย์ (payment intent, session, order, charge) แต่ลำดับขั้นตอนเหมือนกัน

นักเดินทางชำระค่าทริปออนไลน์ ขณะที่เว็บไซต์จอง เกตเวย์ชำระเงิน และธนาคารแลกเปลี่ยนข้อความการชำระเงิน

ลูกศรเส้นประคือเว็บฮุก: เกตเวย์เรียกเซิร์ฟเวอร์ของคุณเอง ดังนั้นการชำระเงินจะอัปเดตการจองได้แม้นักเดินทางปิดเบราว์เซอร์ไปแล้ว หน้าเชื่อมต่อเพย์เมนต์เกตเวย์อธิบายวิธีผูกแต่ละขั้นตอนเข้ากับการจองใน PHPTRAVELS

  • นักเดินทาง
  • เว็บไซต์ของคุณ
  • เกตเวย์
  • เครือข่ายบัตร / ธนาคาร
  1. 01เช็กเอาต์นักเดินทาง เว็บไซต์ของคุณ

    นักเดินทางตรวจสอบทริปแล้วกดชำระเงิน การจองถูกกันไว้กับซัพพลายเออร์ แต่ยังไม่ยืนยัน

  2. 02สร้าง payment intent หรือเซสชันเว็บไซต์ของคุณ เกตเวย์

    เซิร์ฟเวอร์ของคุณส่งยอดเงิน สกุลเงิน หมายเลขการจอง และ idempotency key พร้อม API key ลับ เกตเวย์ส่งรหัสการชำระเงินกลับมา

  3. 03ช่องกรอกที่โฮสต์โดยเกตเวย์ หรือการรีไดเรกต์เกตเวย์ นักเดินทาง

    ฟอร์มบัตรมาจากเกตเวย์ ทั้งแบบฝังในหน้าของคุณหรือหน้าแยก ข้อมูลบัตรจึงไปที่เกตเวย์โดยตรง

  4. 043-D Secureเครือข่ายบัตร / ธนาคาร นักเดินทาง

    หากธนาคารผู้ออกบัตรต้องการ นักเดินทางจะยืนยันการชำระเงินในแอปธนาคารหรือด้วยรหัสใช้ครั้งเดียว

  5. 05อนุมัติเกตเวย์ เครือข่ายบัตร / ธนาคาร

    เกตเวย์ขอให้ผู้ออกบัตรอนุมัติยอดเงินผ่านเครือข่ายบัตร

  6. 06อนุมัติแล้ว กันวงเงินไว้เครือข่ายบัตร / ธนาคาร เกตเวย์

    ผู้ออกบัตรกันเงินไว้บนบัตร ยังไม่มีเงินเคลื่อนไหวจริง

  7. 07ส่งผลกลับเว็บไซต์ของคุณเกตเวย์ เว็บไซต์ของคุณ

    นักเดินทางกลับมาที่เว็บไซต์พร้อมรหัสการชำระเงิน เซิร์ฟเวอร์อ่านสถานะจาก API และยืนยันการจองกับซัพพลายเออร์

  8. 08เรียกเก็บเงินเว็บไซต์ของคุณ เกตเวย์

    เมื่อซัพพลายเออร์ยืนยัน เซิร์ฟเวอร์เรียกเก็บเต็มจำนวนหรือน้อยกว่านั้น เกตเวย์จำนวนมากเรียกเก็บทันทีได้ด้วย

  9. 09เว็บฮุกเกตเวย์ เว็บไซต์ของคุณเกตเวย์ส่งเอง

    เกตเวย์ส่งอีเวนต์ที่ลงลายเซ็น (เรียกเก็บแล้ว คืนเงินแล้ว ถูกโต้แย้ง) มายัง endpoint ของคุณ เซิร์ฟเวอร์ตรวจลายเซ็นแล้วอัปเดตการจอง

สถานะการชำระเงิน

วงจรชีวิตของการชำระเงินในรูปแบบ state machine

API ของเกตเวย์ทุกเจ้าจะรายงานสถานะของแต่ละการชำระเงิน คำเรียกต่างกัน แต่สอดคล้องกับสถานะเพียงไม่กี่แบบ และตรรกะการจองของคุณควรตอบสนองต่อทุกสถานะ

  1. created

    สร้างแล้ว

    มีการชำระเงินพร้อมยอดและสกุลเงิน รอนักเดินทางดำเนินการ

    failedสถานะสุดท้าย

    ล้มเหลว

    ถูกปฏิเสธ 3-D Secure ไม่เสร็จสมบูรณ์ หรือถูกทิ้งกลางทาง ไม่มีการตัดเงิน

  2. authorized

    อนุมัติแล้ว

    ผู้ออกบัตรอนุมัติยอดเงินและกันไว้บนบัตร

    voidedสถานะสุดท้าย

    ยกเลิกแล้ว

    ยกเลิกการกันวงเงินก่อนเรียกเก็บ นักเดินทางจึงไม่ถูกตัดเงิน

  3. captured

    เรียกเก็บแล้ว

    ตัดเงินแล้ว และจะโอนเข้าบัญชีร้านค้าของคุณ

    partially_refundedสถานะสุดท้าย

    คืนเงินบางส่วน

    คืนเงินส่วนหนึ่งของยอดที่เรียกเก็บ เช่น หลังหักค่าธรรมเนียมยกเลิก

    refundedสถานะสุดท้าย

    คืนเงินแล้ว

    คืนยอดที่เรียกเก็บทั้งหมดเข้าบัตร

การอนุมัติไม่ได้อยู่ตลอดไป: หากไม่เรียกเก็บภายในเวลาที่กำหนด การกันวงเงินจะหมดอายุและธนาคารจะปล่อยเงินคืน การชำระเงินที่คืนบางส่วนแล้วยังคืนเพิ่มได้ ไม่เกินยอดที่เรียกเก็บ

ทำไมท่องเที่ยวจึงยากกว่า

ทำไมการชำระเงินด้านท่องเที่ยวจึงต่างออกไป

ร้านค้าขายของที่มีในสต็อก ส่วนผู้ขายทริปรับเงินสำหรับการจองที่ซัพพลายเออร์ยังต้องยืนยัน มักล่วงหน้าหลายเดือนก่อนเดินทาง API ชำระเงินจึงต้องรองรับเรื่องนี้

  • 01

    อนุมัติก่อน เรียกเก็บทีหลัง

    โรงแรมแบบรอยืนยัน อัตราค่าโดยสารกลุ่ม และทัวร์ จะได้รับการยืนยันหลังสั่งซื้อเป็นชั่วโมงหรือเป็นวัน การอนุมัติก่อนและเรียกเก็บเมื่อยืนยันแล้ว ทำให้ไม่ต้องเก็บเงินจากการจองที่ไม่เกิดขึ้น

  • 02

    ซัพพลายเออร์ยังปฏิเสธได้

    อัตราค่าโดยสารอาจหมดระหว่างชำระเงินกับออกตั๋ว หากเป็นการอนุมัติ เงินจะถูกปล่อยด้วยการยกเลิก แต่หากเรียกเก็บแล้ว จะกลายเป็นการคืนเงิน

  • 03

    คืนเงินบางส่วนหลังหักค่าธรรมเนียมยกเลิก

    การยกเลิกที่พักหรือตั๋วมักถูกหักค่าธรรมเนียม การเรียกคืนเงินจะส่งยอดที่ต่ำกว่ากับการชำระเงินเดิม กี่ครั้งก็ได้ตามที่กฎกำหนด

  • 04

    หลายสกุลเงิน

    นักเดินทางจ่ายด้วยสกุลเงินของตน ขณะที่ซัพพลายเออร์ออกใบแจ้งหนี้ด้วยสกุลเงินของเขา เกตเวย์ต้องรองรับสกุลเงินที่แสดง และบันทึกของคุณต้องเก็บทั้งสองยอด

  • 05

    ตรวจสอบการฉ้อโกงสำหรับยอดสูง

    ตั๋วสำหรับพรุ่งนี้ ซื้อให้คนอื่น จ่ายด้วยบัตรใหม่ เป็นรูปแบบการฉ้อโกงที่พบบ่อย 3-D Secure คะแนนความเสี่ยงของเกตเวย์ และคิวตรวจสอบด้วยมือช่วยปกป้องคำสั่งซื้อยอดสูง

  • 06

    Chargeback ที่มาหลายเดือนหลังจากนั้น

    การโต้แย้งมักมาหลังเดินทางแล้ว เก็บผลการยืนยันตัวตน เอกสารการจอง และอีเวนต์จากเกตเวย์ไว้ด้วยกัน เพื่อตอบโต้ได้พร้อมหลักฐาน

วิธีชำระเงิน

API เกตเวย์ชำระเงินครอบคลุมวิธีจ่ายเงินแบบใดบ้าง

บัตรเป็นเพียงหนึ่งในตัวเลือก นักเดินทางและเอเจนต์จ่ายเงินต่างกัน และการคืนเงินของแต่ละวิธีก็ต่างกันด้วย

วิธีคืออะไรเงินเข้าเมื่อใดการคืนเงิน
บัตรบัตรเดบิตและบัตรเครดิตผ่านเกตเวย์ พร้อม 3-D Secure เมื่อผู้ออกบัตรกำหนดอนุมัติตอนเช็กเอาต์ เรียกเก็บทันทีหรือเมื่อซัพพลายเออร์ยืนยันคืนเต็มจำนวนหรือบางส่วนเข้าบัตรใบเดิมผ่าน API
วอลเล็ตดิจิทัลบัญชีวอลเล็ตที่เกตเวย์รองรับ เช่น PayPal หรือวอลเล็ตบนมือถือที่เก็บบัตรแบบโทเคนตอนเช็กเอาต์ หลังนักเดินทางอนุมัติในวอลเล็ตคืนเข้าวอลเล็ตหรือบัตรที่อยู่เบื้องหลัง ผ่านเกตเวย์
โอนผ่านธนาคารนักเดินทางหรือเอเจนต์โอนเงินเข้าบัญชีธนาคารของคุณ และบันทึกการชำระเงินกับการจองหลายวันต่อมา การจองจะรอจนทีมของคุณยืนยันว่าได้รับเงินคืนด้วยการโอน นอกเกตเวย์
จ่ายภายหลังจองตอนนี้ แล้วจ่ายทีหลัง ทีมของคุณบันทึกการชำระเงินเมื่อเงินเข้าหลังการจอง เมื่อนักเดินทางจ่ายคืนเฉพาะยอดที่จ่ายจริง
วอลเล็ตหรือเครดิตเอเจนต์ B2Bเอเจนต์ย่อยจ่ายจากยอดคงเหลือที่เติมไว้ล่วงหน้า หรือจากวงเงินเครดิตที่คุณอนุมัติหักตอนจอง เงินมัดจำและเครดิตชำระตามเงื่อนไขของคุณคืนเข้ายอดคงเหลือของเอเจนต์

การโอนผ่านธนาคาร จ่ายภายหลัง และยอดวอลเล็ต เป็นตัวเลือกการชำระของแพลตฟอร์มเอง ไม่ใช่เกตเวย์ ยอดคงเหลือและวงเงินเครดิตของเอเจนต์อธิบายในหน้ากระเป๋าเงินเอเจนต์ B2B ส่วนการชำระผ่านธนาคารอยู่ในหน้าชำระเงินด้วยการโอนผ่านธนาคาร

พร้อมใช้ใน PHPTRAVELS

API เกตเวย์ชำระเงินที่เชื่อมต่อแล้ว

เกตเวย์เหล่านี้เชื่อมต่อกับ PHPTRAVELS แล้ว คุณเปิดบัญชีร้านค้ากับผู้ให้บริการ ใส่ API key ในหน้าแอดมิน ทดสอบใน sandbox ของเขา แล้วเปิดใช้งานจริง รายการนี้ดึงสดจากไดเรกทอรีการเชื่อมต่อของเรา

ค่าธรรมเนียมและการอนุมัติร้านค้าตกลงกับบริษัทชำระเงิน ไม่ใช่กับ PHPTRAVELS เกตเวย์ที่ไม่อยู่ในรายการเพิ่มได้เป็นการเชื่อมต่อ API แบบกำหนดเอง และหน้าเชื่อมต่อเพย์เมนต์เกตเวย์อธิบายวิธีตั้งค่าแต่ละตัว

ความปลอดภัย

เก็บข้อมูลบัตรให้อยู่นอกระบบของคุณ

หมายเลขบัตรที่ปลอดภัยที่สุดคือหมายเลขที่เซิร์ฟเวอร์ของคุณไม่เคยได้รับ API เกตเวย์ชำระเงินออกแบบมาเพื่อไม่ให้คุณต้องรับมัน

  • ไม่เก็บหมายเลขบัตร

    ข้อมูลบัตรไปที่เกตเวย์ ซึ่งส่งโทเคนหรือรหัสการชำระเงินกลับมา ฐานข้อมูลของคุณเก็บเฉพาะข้อมูลอ้างอิงนั้น ไม่เก็บหมายเลขบัตรหรือรหัสความปลอดภัย

  • ช่องกรอกที่เกตเวย์โฮสต์และการรีไดเรกต์ลดขอบเขต PCI DSS

    PCI DSS ใช้กับทุกคนที่จัดการข้อมูลบัตร เมื่อฟอร์มบัตรเป็นหน้าของเกตเวย์เองหรือช่องกรอกแบบฝัง ส่วนของระบบคุณที่อยู่ในขอบเขตจะน้อยลงมาก ผู้รับชำระเงิน (acquirer) ของคุณจะยืนยันว่าต้องทำแบบประเมินตนเองชุดใด

  • ตรวจสอบเว็บฮุกด้วยลายเซ็น

    เว็บฮุกทุกรายการมีลายเซ็นที่สร้างด้วยความลับร่วม เซิร์ฟเวอร์ของคุณคำนวณซ้ำและปฏิเสธอีเวนต์ที่ไม่ตรงกัน จึงไม่มีใครปลอมการจองที่ชำระแล้วได้

  • คีย์ลับอยู่บนเซิร์ฟเวอร์เท่านั้น

    เบราว์เซอร์ได้รับเพียงคีย์สาธารณะ คีย์ลับที่ใช้สร้างการชำระเงินและการคืนเงินอยู่ในคอนฟิกของเซิร์ฟเวอร์ และทุกคำขอมี idempotency key เพื่อให้การลองใหม่ไม่ตัดเงินซ้ำ

webhook.php
 1$payload   = file_get_contents("php://input"); 2$signature = $_SERVER["HTTP_X_SIGNATURE"] ?? ""; 3$expected  = hash_hmac("sha256", $payload, $webhookSecret); 4 5if (!hash_equals($expected, $signature)) { 6    http_response_code(400); exit;      // reject 7} 8$event = json_decode($payload, true); 9if (alreadyHandled($event["id"])) exit; // repeat delivery10updateBooking($event["data"]["metadata"]["booking_ref"], $event["type"]);

ตัวอย่างทั่วไป ชื่อเฮดเดอร์และวิธีลงลายเซ็นขึ้นอยู่กับเกตเวย์ที่คุณเลือก

PHPTRAVELS เป็นซอฟต์แวร์ที่โฮสต์เอง ดังนั้นการปฏิบัติตาม PCI DSS จึงประเมินกับธุรกิจและเซิร์ฟเวอร์ของคุณ ไม่ได้ประเมินที่ตัวซอฟต์แวร์เพียงอย่างเดียว

ดูการจองที่ชำระเงิน เรียกเก็บ และคืนเงิน

จองทริปในเดโมสดแล้วติดตามการชำระเงินในหน้าแอดมิน ในแผน Enterprise PHPTRAVELS ยังมี REST API และเว็บฮุกของตัวเองสำหรับแอปและพาร์ตเนอร์ของคุณด้วย

วางแผนขายตั๋วเครื่องบินด้วยหรือไม่ หน้าAPI เที่ยวบินอธิบายฝั่งซัพพลายเออร์ และหน้าAPI ท่องเที่ยวรวบรวมทุก API ที่ PHPTRAVELS เชื่อมต่อ

คำถามที่พบบ่อย

API เกตเวย์ชำระเงิน: คำถามจากผู้ขายบริการท่องเที่ยว

คุยกับฝ่ายขาย

คือชุดเว็บเซอร์วิสที่บริษัทชำระเงินให้ใช้ เพื่อให้เว็บไซต์สร้างการชำระเงิน ส่งบัตรไปให้ธนาคารอนุมัติ เรียกเก็บเงิน คืนเงิน และรับการแจ้งสถานะผ่านเว็บฮุก โดยไม่ต้องเก็บข้อมูลบัตรเอง

เกตเวย์คือส่วนที่เว็บไซต์ของคุณคุยด้วย: เก็บข้อมูลบัตรอย่างปลอดภัยและส่งคำขอต่อ ส่วนตัวประมวลผลนำธุรกรรมผ่านเครือข่ายบัตรไปยังธนาคารผู้ออกบัตร ผู้ให้บริการหลายรายรวมสองอย่างไว้เป็นบริการเดียว

ตัวที่อนุมัติธุรกิจของคุณ รองรับประเทศ สกุลเงิน และวิธีชำระเงินของลูกค้า มีการแยกอนุมัติกับเรียกเก็บ และคืนเงินบางส่วนได้ เอเจนซี่จำนวนมากใช้เกตเวย์บัตรระดับโลกคู่กับเกตเวย์ท้องถิ่น

การอนุมัติคือการกันยอดเงินบนบัตรของนักเดินทาง ส่วนการเรียกเก็บคือการตัดเงินจริง การแยกสองขั้นนี้ช่วยให้คุณเก็บเงินหลังซัพพลายเออร์ยืนยันการจอง และยกเลิกการกันวงเงินหากไม่ยืนยัน

ในหลายภูมิภาค รวมถึงเขตเศรษฐกิจยุโรปและสหราชอาณาจักร การชำระเงินด้วยบัตรออนไลน์ส่วนใหญ่ต้องมีการยืนยันตัวตนลูกค้าแบบเข้มงวด และบัตรทำตามข้อกำหนดนี้ด้วย 3-D Secure API ของเกตเวย์จัดการขั้นตอนยืนยันให้ ส่วนขั้นตอนการจองของคุณรอผลลัพธ์

ไม่ใช่โดยอัตโนมัติ การใช้ช่องกรอกหรือหน้าชำระเงินที่เกตเวย์โฮสต์ช่วยให้ข้อมูลบัตรไม่ผ่านเซิร์ฟเวอร์ของคุณและลดขอบเขต PCI DSS แต่คุณยังต้องทำการประเมินที่ผู้รับชำระเงินกำหนด

ได้ หากเกตเวย์รองรับการคืนเงินบางส่วน ซึ่งเกตเวย์บัตรส่วนใหญ่รองรับ คุณส่งคำขอคืนเงินด้วยยอดที่ต่ำกว่ากับการชำระเงินเดิม เช่น ราคาหักค่าธรรมเนียมยกเลิก

ไม่ คุณเปิดบัญชีร้านค้ากับเกตเวย์ที่เลือกและตกลงค่าธรรมเนียมกับเขาเอง PHPTRAVELS เชื่อมแพลตฟอร์มการจองของคุณกับบัญชีนั้นด้วย API key ที่คุณใส่ในหน้าแอดมิน

ได้ เกตเวย์ใดก็ตามที่มี API ที่มีเอกสารสามารถเพิ่มเป็นการเชื่อมต่อแบบกำหนดเองได้ และเนื่องจากมีซอร์สโค้ดให้ด้วย นักพัฒนาของคุณจึงขยายขั้นตอนการชำระเงินได้เช่นกัน