การชำระเงินแบบ Agentic
คุณสามารถค้นหาโรงแรม เลือกห้องพัก และทำการจองผ่านเอเจนต์ AI ของคุณ เชื่อมต่อกับ Wink และกระเป๋าเงินสำหรับชำระเงิน จากนั้นบอกว่าคุณต้องการพักที่ไหน Wink ใช้ Machine Payments Protocol (MPP) เพื่อรับการชำระเงินจากกระเป๋าเงินและส่งคืนการยืนยันการจองของคุณ
1. เชื่อมต่อเซิร์ฟเวอร์ MCP
หัวข้อที่มีชื่อว่า “1. เชื่อมต่อเซิร์ฟเวอร์ MCP”สำหรับกระบวนการจองที่สมบูรณ์ เอเจนต์ของคุณต้องมี Wink Booking Engine และ กระเป๋าเงินสำหรับชำระเงิน
| การเชื่อมต่อ | ทำหน้าที่อะไร | วิธีเพิ่ม |
|---|---|---|
| Wink Booking Engine — จำเป็น | ค้นหาปลายทาง ค้นหาโรงแรมและอัตราห้องพัก ออกใบเสนอราคาและยืนยันการจอง รวมถึงดึงข้อมูลการจองและใบเสร็จของคุณ | เพิ่ม https://api.wink.travel/mcp/booking-engine เป็นเซิร์ฟเวอร์ HTTP MCP ระยะไกล |
| กระเป๋าเงินสำหรับชำระเงิน — จำเป็นสำหรับการชำระเงิน | ให้ข้อมูลรับรองการชำระเงินหลังจากที่คุณอนุมัติการซื้อ | เชื่อมต่อกระเป๋าเงินที่รองรับ Stripe Shared Payment Tokens ดูตัวอย่าง Link ด้านล่าง |
| Wink Reference — ตัวเลือก | ค้นหาข้อมูลประเทศ สกุลเงิน และข้อมูลอ้างอิงอื่น ๆ | https://api.wink.travel/mcp/reference |
| Wink Docs — ตัวเลือก | ช่วยให้เอเจนต์ของคุณอ่านเอกสารและสัญญา API | https://docs.mcp.wink.travel/mcp |
Booking Engine MCP มีเครื่องมือที่จำเป็นสำหรับกระบวนการจองของนักเดินทางแล้ว เมื่อเปิดใช้งานการจองและการชำระเงินแบบ agentic สำหรับสภาพแวดล้อมนั้น MCP การชำระเงินแยกต่างหากของ Wink สำหรับการดำเนินการทางการเงิน เช่น บัญชีแยกประเภทและการถอนเงิน ไม่จำเป็นสำหรับการชำระเงินค่าห้องพัก
ลงชื่อเข้าใช้และเลือกสิทธิ์
หัวข้อที่มีชื่อว่า “ลงชื่อเข้าใช้และเลือกสิทธิ์”- เปิดการตั้งค่า MCP หรือคอนเนคเตอร์ของเอเจนต์ของคุณและเพิ่ม URL ของ Booking Engine ข้างต้น ตั้งชื่อเช่น Wink Booking
- เอเจนต์ของคุณจะเปิดหน้าลงชื่อเข้าใช้ Wink ในเบราว์เซอร์ ลงชื่อเข้าใช้ด้วยบัญชี Wink ที่คุณต้องการจอง
- บนหน้าจอการยินยอม เลือกสิทธิ์ที่เอเจนต์ของคุณต้องการ จากนั้นอนุมัติการเชื่อมต่อ
- กลับไปที่เอเจนต์ของคุณ มันจะโหลดเครื่องมือที่มีและจัดการการตรวจสอบสิทธิ์สำหรับการเรียก MCP ต่อไป
สำหรับกระบวนการนี้ ให้เลือก:
| สิทธิ์ | เหตุผลที่ต้องการ |
|---|---|
การเข้าถึงเอเจนต์ AI (mcp.read) | อนุญาตให้เอเจนต์ของคุณเชื่อมต่อกับ Wink MCP |
การอ่านการตลาด (marketing.read) | ให้เอเจนต์ค้นหาการตั้งค่าการจองของบัญชีของคุณที่เรียกว่าการปรับแต่ง บัญชีของคุณต้องมีสิทธิ์เข้าถึงการตั้งค่านี้ด้วย |
การเขียนการชำระเงิน (payment.write) | ให้เอเจนต์ชำระเงินสำหรับใบเสนอราคาและยืนยันการจอง |
เก็บสิทธิ์ที่ร้องขอในการลงชื่อเข้าใช้โดยการเชื่อมต่อ ลูกค้า MCP ของคุณจะจัดการโทเค็นการเข้าถึง; คุณไม่จำเป็นต้องคัดลอกโทเค็นไปยังแชทหรือกำหนดค่าเฮดเดอร์คำขอ หากคุณข้ามสิทธิ์ที่จำเป็น ให้เชื่อมต่อใหม่ผ่านกระบวนการลงชื่อเข้าใช้ของลูกค้าและอนุมัติสิทธิ์นั้น
เชื่อมต่อกระเป๋าเงินสำหรับชำระเงิน
หัวข้อที่มีชื่อว่า “เชื่อมต่อกระเป๋าเงินสำหรับชำระเงิน”สำหรับการชำระเงินผ่าน Stripe ตัวเลือกหนึ่งคือ กระเป๋าเงินเอเจนต์ของ Link หากไคลเอนต์ของคุณรองรับเซิร์ฟเวอร์ MCP ท้องถิ่นและติดตั้ง Node.js แล้ว ให้เพิ่มรายการนี้ในการตั้งค่า MCP:
{ "mcpServers": { "link": { "command": "npx", "args": ["@stripe/link-cli", "--mcp"] } }}ขอให้เอเจนต์ของคุณเชื่อมต่อบัญชี Link ของคุณ จากนั้นทำตามลิงก์ยืนยันที่เอเจนต์ให้มาและอนุมัติการเชื่อมต่อ Link จะจัดหา Shared Payment Token ที่ใช้ชำระเงินสำหรับการจอง Link รองรับบัญชีสหรัฐฯ ในปัจจุบัน ตรวจสอบขีดจำกัดการใช้จ่ายก่อนจอง ดู คู่มือการตั้งค่า Link และ การตั้งค่า MCP
ถ้าเอเจนต์ของคุณมีการเชื่อมต่อกระเป๋าเงินที่เข้ากันได้อยู่แล้ว ให้ใช้การเชื่อมต่อนั้น การตั้งค่ากระเป๋าเงินและการอนุมัติการชำระเงินแยกจากการลงชื่อเข้าใช้ Wink
2. ขอให้เอเจนต์ของคุณค้นหาห้องพัก
หัวข้อที่มีชื่อว่า “2. ขอให้เอเจนต์ของคุณค้นหาห้องพัก”ตัวอย่าง:
ค้นหาห้องพักในกรุงเทพฯ สำหรับผู้ใหญ่ 2 คน ตั้งแต่วันที่ 15 ถึง 17 มกราคม 2027 แสดงตัวเลือกที่มี ราคาเต็ม และเงื่อนไขการยกเลิกก่อนที่ฉันจะเลือก
เอเจนต์ของคุณสามารถค้นหาบัญชี Wink ที่คุณเข้าถึงได้และการตั้งค่าการจองของพวกเขา หากคุณมีหลายบัญชี ให้บอกเอเจนต์ว่าต้องการใช้บัญชีใด หากคุณกำลังจองผ่านลิงก์การจองหรือการตั้งค่าที่ให้มา ให้ส่งข้อมูลนั้นให้เอเจนต์แทน
เอเจนต์จะระบุปลายทาง ตรวจสอบโรงแรมที่มี และโหลดอัตราห้องสำหรับวันที่คุณเลือก เลือกห้องและขอใบเสนอราคา
กระบวนการชำระเงินนี้รองรับ ห้องเดียว ราคาตั้งเป็น USD สำหรับผู้ใหญ่เท่านั้น ใบเสนอราคาจะมีเวลาหมดอายุ การขอใบเสนอราคาไม่ได้เรียกเก็บเงินหรือยืนยันการจอง
3. ตรวจสอบและอนุมัติการชำระเงิน
หัวข้อที่มีชื่อว่า “3. ตรวจสอบและอนุมัติการชำระเงิน”ตรวจสอบโรงแรม ห้องพัก วันที่ ผู้เข้าพัก เงื่อนไขการยกเลิก และยอดรวมที่เสนอราคา เมื่อพร้อมแล้ว ขอให้เอเจนต์ของคุณทำการจองและดำเนินการอนุมัติใด ๆ ที่กระเป๋าเงินของคุณร้องขอ
กระเป๋าเงินจะให้ Stripe Shared Payment Token เพื่อชำระเงินสำหรับใบเสนอราคา
การชำระเงินด้วย Tempo stablecoin กำลังจะมาเร็ว ๆ นี้
หลังจากชำระเงินสำเร็จ เอเจนต์ของคุณจะให้ รหัสยืนยันการจอง คุณยังสามารถดึงรายละเอียดการจองและใบเสร็จผ่าน Booking Engine MCP ได้
หากการชำระเงินยังอยู่ระหว่างดำเนินการหรือการตอบกลับสูญหาย ให้เอเจนต์ตรวจสอบ ความพยายามชำระเงินเดียวกัน ควรใช้ใบเสนอราคาและข้อมูลรับรองการชำระเงินเดิมแทนที่จะเริ่มการชำระเงินครั้งที่สอง หากการชำระเงินถูกปฏิเสธ ให้ขอใบเสนอราคาใหม่และตรวจสอบก่อนลองอีกครั้ง
อ้างอิงเครื่องมือสำหรับเอเจนต์และนักพัฒนา
หัวข้อที่มีชื่อว่า “อ้างอิงเครื่องมือสำหรับเอเจนต์และนักพัฒนา”เครื่องมือ Wink ทั้งหมดด้านล่างนี้สามารถใช้งานผ่าน Booking Engine MCP ลูกค้า MCP จะส่งการตรวจสอบสิทธิ์โดยอัตโนมัติโดยใช้สิทธิ์ที่อนุมัติในระหว่างการลงชื่อเข้าใช้
| ขั้นตอน | เครื่องมือและพฤติกรรม |
|---|---|
| เลือกบริบทการจอง | managing_entity_list จากนั้น customization_get_primary หรือ customization_search สำหรับบัญชีที่เลือก ใช้การปรับแต่งที่ให้มาเมื่อรู้จักแล้ว |
| ค้นหาปลายทาง | destination_lookup_search_suggestions และ destination_lookup_get |
| ค้นหาโรงแรมและห้องพัก | inventory_search_city หรือ inventory_search_geo จากนั้น property_inventory_get สำหรับอัตราและความพร้อม |
| ออกใบเสนอราคาห้องที่เลือก | agentic_booking_quote ส่งรายละเอียดห้องในอาร์กิวเมนต์ request |
| ชำระเงินและยืนยัน | รับ Shared Payment Token จากกระเป๋าเงินที่เชื่อมต่อ จากนั้นเรียก agentic_booking_pay พร้อม request.quoteId และ request.spt ใช้ผู้ใช้ Wink ที่ลงชื่อเข้าใช้เดียวกันสำหรับใบเสนอราคาและการชำระเงิน |
| ดึงข้อมูลการจองและใบเสร็จ | ใช้ booking_search หรือ booking_search_list เพื่อค้นหาการจองที่ยืนยันแล้ว จากนั้น booking_get และ booking_receipt_get ด้วยรหัสการจอง |
คำขอใบเสนอราคาต้องการ hotelIdentifier, roomRateIdentifier, checkIn, checkOut, adults, children และ customizationIdentifier วันที่ใช้รูปแบบ YYYY-MM-DD; checkOut ต้องตามหลัง checkIn ตั้งค่า adults อย่างน้อย 1 และ children เป็น 0
ใบเสนอราคาจะส่งคืน quoteId, amountUsdCents, currency, expiresAt และ mppChallenges แสดงจำนวนเงินในหน่วยเซนต์ USD เป็นดอลลาร์: 10000 หมายถึง $100.00
| ผลลัพธ์การชำระเงิน | ขั้นตอนถัดไป |
|---|---|
PAYMENT_SUCCEEDED | บันทึก bookingConfirmationCode และ chargeReference |
IN_PROGRESS | รอสักครู่แล้วลองใหม่ด้วยใบเสนอราคาและข้อมูลรับรองเดียวกัน |
DECLINED | ขอใบเสนอราคาใหม่และตรวจสอบก่อนชำระเงินอีกครั้ง |
การลองใหม่ที่สำเร็จจะส่งคืนการจองที่มีอยู่โดยไม่เรียกเก็บเงินซ้ำ ถือว่า timeout เป็นผลลัพธ์ที่ไม่ทราบและลองชำระเงินเดิมอีกครั้ง หากยังไม่แก้ไข ติดต่อฝ่ายสนับสนุนพร้อมรหัสใบเสนอราคา
ลูกค้า MCP ที่รับรู้การชำระเงิน
หัวข้อที่มีชื่อว่า “ลูกค้า MCP ที่รับรู้การชำระเงิน”ลูกค้า MCP ที่รับรู้การชำระเงินสามารถใช้ agentic_booking_book พร้อมฟิลด์ห้องโดยตรงใน arguments การเรียกครั้งแรกจะส่งคืนข้อผิดพลาด -32042 พร้อมความท้าทายการชำระเงิน ลองเรียกเดิมอีกครั้งพร้อมข้อมูลรับรองกระเป๋าเงินใน params._meta["org.paymentauth/credential"]; ความสำเร็จจะรวม result._meta["org.paymentauth/receipt"] ข้อผิดพลาด -32043 มีความล้มเหลวและความท้าทายการชำระเงิน: การปฏิเสธที่ชัดเจนต้องใช้ใบเสนอราคาใหม่ ขณะที่ payload การชำระเงินที่ไม่สมบูรณ์สามารถลองใหม่ด้วยความท้าทายเดิม สำหรับ -32603 data.failure.reason เป็น payment-in-progress หรือ already-consumed หมายถึงลองใหม่ด้วยข้อมูลรับรองเดียวกัน; รหัสข้อผิดพลาดเพียงอย่างเดียวไม่เพียงพอ
จองผ่าน REST
หัวข้อที่มีชื่อว่า “จองผ่าน REST”ใช้ REST เมื่อสร้างการผสานรวมที่เรียก Wink โดยตรงผ่าน HTTP ทั้งใบเสนอราคาและการชำระเงินใช้ POST https://api.wink.travel/api/mpp/booking
แอปของคุณต้องมี โทเค็นการเข้าถึงผู้ใช้ Wink ที่มีสิทธิ์ payment.write เพื่อชำระเงิน ใช้ผู้ใช้เดียวกันสำหรับทั้งสองคำขอ ส่งโทเค็นใน Wink-Authorization โดยปล่อยให้ Authorization สำหรับข้อมูลรับรองการชำระเงินของกระเป๋าเงิน เฮดเดอร์เหล่านี้ใช้กับ REST; ลูกค้า MCP จะจัดการการตรวจสอบสิทธิ์ของตนเอง
1. ขอใบเสนอราคา
หัวข้อที่มีชื่อว่า “1. ขอใบเสนอราคา”บันทึกห้องที่เลือกเป็น booking.json โดยแทนที่รหัสตัวอย่างและวันที่ด้วยตัวเลือกของคุณ ฟิลด์ห้องใส่ใน JSON body โดยตรงโดยไม่ต้องมี wrapper request
{ "hotelIdentifier": "YOUR_HOTEL_ID", "roomRateIdentifier": "YOUR_ROOM_RATE_ID", "checkIn": "2027-01-15", "checkOut": "2027-01-17", "adults": 2, "children": 0, "customizationIdentifier": "YOUR_CUSTOMIZATION_ID"}ตั้งค่า WINK_ACCESS_TOKEN เป็นโทเค็นการเข้าถึงของผู้ใช้และส่งคำขอ:
curl -i https://api.wink.travel/api/mpp/booking \ -H "Wink-Authorization: Bearer $WINK_ACCESS_TOKEN" \ -H 'Content-Type: application/json' \ --data-binary @booking.jsonWink จะส่งคืน 402 Payment Required พร้อม WWW-Authenticate: Payment ... ความท้าทายสำหรับแต่ละวิธีที่เสนอ JSON body รวม quoteId, amount, currency, expiresAt และ methods ที่นี่ amount เป็นสตริงในหน่วยเซนต์ USD: "10000" หมายถึง $100.00 ตรวจสอบใบเสนอราคาก่อนหมดอายุ; ยังไม่มีการชำระเงินเกิดขึ้น
2. ชำระเงินและยืนยัน
หัวข้อที่มีชื่อว่า “2. ชำระเงินและยืนยัน”ให้กระเป๋าเงินดำเนินการความท้าทาย Stripe ที่ส่งคืนโดยจัดหา Shared Payment Token ใน payload.spt ใช้รายละเอียดการชำระเงินจากความท้าทายนั้น
ตั้งค่า MPP_CREDENTIAL เป็นข้อมูลรับรอง MPP ที่เข้ารหัสของกระเป๋าเงิน ซึ่งมีความท้าทายและ payload การชำระเงิน ลองคำขอ body เดิม อีกครั้ง พร้อมเฮดเดอร์ระบุตัวตน:
curl -i https://api.wink.travel/api/mpp/booking \ -H "Wink-Authorization: Bearer $WINK_ACCESS_TOKEN" \ -H "Authorization: Payment $MPP_CREDENTIAL" \ -H 'Content-Type: application/json' \ --data-binary @booking.jsonเมื่อสำเร็จ Wink จะส่งคืน 200 OK พร้อม JSON body ที่มี bookingConfirmationCode และเฮดเดอร์ Payment-Receipt บันทึกการยืนยันและใบเสร็จ การลองใหม่ที่สำเร็จจะส่งคืนการจองที่มีอยู่โดยไม่เรียกเก็บเงินซ้ำ
จัดการการตอบกลับและการลองใหม่
หัวข้อที่มีชื่อว่า “จัดการการตอบกลับและการลองใหม่”| การตอบกลับ | สิ่งที่ต้องทำ |
|---|---|
400 | แก้ไขรายละเอียดห้องที่ไม่ถูกต้องหรือข้อมูลรับรองที่ผิดรูปแบบ |
401 / 403 | ตรวจสอบการตรวจสอบสิทธิ์ของผู้ใช้และสิทธิ์การชำระเงิน |
402 | ตรวจสอบปัญหาและความท้าทายที่ส่งคืน การปฏิเสธการชำระเงินที่ชัดเจนต้องขอใบเสนอราคาใหม่ ขณะที่ payload การชำระเงินที่ไม่สมบูรณ์ใช้ความท้าทายเดิม ตรวจสอบราคาก่อนชำระเงิน |
409 | ผลลัพธ์การชำระเงินยังไม่แน่นอน รอสักครู่แล้วลองคำขอและข้อมูลรับรองเดิมที่จุดจองอีกครั้ง |
429 | รอจำนวนวินาทีที่ระบุใน Retry-After แล้วลองใหม่ |
การตอบกลับ 409 มี body application/problem+json จับคู่ type กับ URL เหล่านี้:
| ประเภทปัญหา | ความหมาย |
|---|---|
| https://api.wink.travel/problems/payment-in-progress | ความพยายามชำระเงินยังดำเนินอยู่หรือยังไม่สามารถยืนยันการชำระเงินได้ |
| https://api.wink.travel/problems/already-consumed | ความท้าทายหรือหลักฐานการชำระเงินถูกใช้ไปแล้วโดยความพยายามที่อาจสำเร็จ ปัญหานี้เพียงอย่างเดียวไม่ยืนยันการจอง |
ทั้งสองหมายถึง ลองชำระเงินเดิมอีกครั้ง; อย่าชำระเงินใบเสนอราคาใหม่ URL เหล่านี้ระบุและอธิบายปัญหา; ไม่ใช่จุดชำระเงินหรือจุด polling ลอง POST /api/mpp/booking อีกครั้ง และใช้ type ของปัญหาแทนข้อความอธิบายฟรีเพื่อกำหนดการดำเนินการ ดู อ้างอิงประเภทปัญหา สำหรับปัญหาการชำระเงิน Wink ทั้งหมด
การหมดเวลา การสูญหายของการตอบกลับ หรือข้อผิดพลาดของเซิร์ฟเวอร์หลังส่งการชำระเงิน อาจทำให้ผลลัพธ์ไม่แน่นอน ลองคำขอชำระเงินเดิมอีกครั้ง หากผลลัพธ์ยังไม่แน่นอน ติดต่อฝ่ายสนับสนุนพร้อมรหัสใบเสนอราคาก่อนเริ่มการชำระเงินใหม่อีกครั้ง
