Tích hợp với TripPay
Bài viết này chứa một ví dụ từ đầu đến cuối về cách tích hợp với TripPay.
Khuyến nghị bạn đã đọc qua:
- Payment > Mapping.
- Payment > Integration.
- Payment Web Component.
- Payment API. Đọc phần về
Create payable contracts
Dưới đây là các bước để sử dụng TripPay thành công trong việc thanh toán cho một đặt chỗ:
- Đảm bảo các bên thụ hưởng bạn đề cập trong hợp đồng đặt chỗ đã được ánh xạ.
- Cho khách du lịch chọn kho hàng họ muốn đặt và chuẩn bị thanh toán.
- Tạo một
hợp đồng phải thanh toánvới TripPay chứa các mục cần đặt. - Cho khách du lịch thanh toán bằng TripPay Web Component.
Chúng tôi giả định bạn đã hoàn thành Bước 1 và Bước 2 và sẵn sàng để thông báo cho TripPay về đặt chỗ.
Tạo hợp đồng phải thanh toán
Phần tiêu đề “Tạo hợp đồng phải thanh toán”Yêu cầu
Phần tiêu đề “Yêu cầu”Dưới đây là ví dụ yêu cầu JSON bao gồm tất cả những gì bạn cần để tạo hợp đồng phải thanh toán đầu tiên của mình.
{ "user": { "userIdentifier": "191d5729-0b90-4000-85df-1bea7a6e9a01", "firstName": "John", "lastName": "Smith", }, "affiliateAccountIdentifier": "291d5729-0b91-4001-95df-2bec7a6e9a01", "affiliateAccountIdentifierType": "INTERNAL", "displayCurrency": "USD", "traceId": "trace-1", "redirectUrl": "/thank-you", "sourceUrl": "https://www.travel.com", "contractList": [ { "identifier": "191d5729-0b90-4000-8298-72431beb1701", "supplierIdentifier": "191d5729-0b90-4000-8b72-58186a642401", "supplierIdentifierType": "EXTERNAL", "contractItemList": [ { "user": { "userIdentifier": "191d5729-0b90-4000-8596-ed18f9876801", "firstName": "John", "lastName": "Smith", "telephone": "+1 212 555 1212", }, "nameInEnglish": "Deluxe King", "descriptionInEnglish": "This is the best deluxe king that money can buy.", "price": { "amount": 100, "currency": "USD" }, "itinerary": { "startDate": "2024-12-24T00:00:00.000Z", "endDate": "2024-12-25T00:00:00.000Z", "adults": 2 }, "pricingType": "PER_STAY", "type": "LODGING", "payable": "PREPAY", "policy": { "refundable": true }, "externalIdentifier": "room-type-1", "dailyRateList": [ { "date": "2024-12-24", "price": { "amount": 100, "currency": "USD" } } ], "beneficiaryList": [ { "identifier": "account-0", "identifierType": "INTERNAL", "amountDue": { "type": "PERCENTAGE", "percent": 0.015 }, "type": "PLATFORM_FEE" }, { "identifier": "account-1", "identifierType": "INTERNAL", "amountDue": { "type": "PERCENTAGE", "percent": 0.0985 }, "type": "COMMISSION" }, { "identifier": "account-2", "identifierType": "INTERNAL", "amountDue": { "type": "PERCENTAGE", "percent": 0.8865 }, "type": "SALE" } ] } ] } ]}Giải thích:
Chúng tôi sẽ không giải thích từng điểm dữ liệu ở đây vì chúng đã được đề cập trong tài liệu API.
- Các dòng: 2 - 7 là người dùng chịu trách nhiệm đặt chỗ. Có hai loại người đặt:
- Khách du lịch.
- Đại lý du lịch.
- Các dòng: 8 - 9 là tài khoản TripPay hỗ trợ đặt chỗ. Có thể là:
- Tài khoản tích hợp TripPay của bạn.
- Nếu bạn vận hành mạng liên kết, có thể là đối tác liên kết của bạn.
- Sử dụng
traceIdđể nhóm nhiều đặt chỗ từ nhiều nhà cung cấp khác nhau. Bằng cách này bạn có thể hủy một nhóm đặt chỗ. redirectUrlcho TripPay biết trang nào sẽ chuyển hướng sau khi thanh toán hoàn tất.sourceUrllà trang web / ứng dụng nơi đặt chỗ diễn ra.
Mảng contractList chứa các mục mà khách du lịch muốn mua từ nhiều nhà cung cấp. Mỗi mục bao gồm:
identifierlà UUID hợp lệ do bạn tạo.- Nhà cung cấp bạn muốn đặt kho hàng từ đó.
- Kho hàng bạn muốn đặt từ nhà cung cấp đó. Tất cả được chỉ định trong mảng lồng nhau
contractItemList. - Mỗi mục trong
contractItemListchứa:- Người dùng khách Đây là người sẽ đến nơi.
- Tên bằng tiếng Anh Tên kho hàng bằng tiếng Anh.
- Mô tả bằng tiếng Anh Mô tả dài hơn về kho hàng bằng tiếng Anh.
- Giá Giá của mục.
- Lịch trình Khi nào mục này được đặt.
- Loại giá Cách giá được tính.
- Loại kho hàng Loại kho hàng này là gì.
- Phải thanh toán Khi nào khách du lịch phải trả tiền. Hiện tại chúng tôi chỉ hỗ trợ các tùy chọn thanh toán ngay lập tức.
- Chính sách Bao gồm các quy tắc chính sách hủy.
- Danh sách giá hàng ngày Nếu mục được đặt là phòng, bạn có thể chọn bao gồm giá phòng cho mỗi đêm khách lưu trú.
- Các bên thụ hưởng Bao gồm tài khoản TripPay nào sẽ được phân bổ bao nhiêu phần giá của mục. Hỗ trợ số tiền cố định / phần trăm.
Phản hồi
Phần tiêu đề “Phản hồi”Khi TripPay phản hồi yêu cầu của bạn, nó sẽ trông như sau:
[ { "id": "contract-1", "traceId": "trace-1", "supplierContractIdentifier": "191d5729-0b90-4000-8298-72431beb1701", "supplierIdentifier": "191d5729-0b90-4000-8b72-58186a642401", "supplierName": "Hilton", "totalPrice": { "amount": 100, "currency": "USD" }, "totalDisplayPrice": { "amount": 100, "currency": "USD" }, "totalSupplierPrice": { "amount": 100, "currency": "USD" }, "totalInternalPrice": { "amount": 100, "currency": "USD" }, "totalCapturePrice": { "amount": 100, "currency": "USD" } }]Lưu id ở dòng 3. Bạn sẽ dùng nó để chèn vào TripPay web component.
Nhúng TripPay
Phần tiêu đề “Nhúng TripPay”Tại thời điểm này, bạn đã sẵn sàng nhúng Payment Web Component vào trang web của mình và hiển thị cho người dùng.
<trip-pay id="contract-1"></trip-pay>Về mặt tích hợp, đó là tất cả những gì bạn cần làm. Mọi công việc nặng nhọc sẽ do TripPay xử lý từ đây trở đi.