旅游预订支付
让每笔付款与预订保持绑定的旅游支付网关集成
将您的预订网站或 B2B 门户连接到客户常用的支付服务商。结账在预订流程内完成,3D Secure 在银行卡要求时运行,每一次授权、扣款、退款和 webhook 都按您团队使用的预订编号保存。
- 预订流程内结账
- 服务商支持时多币种
- 3D Secure 与令牌化银行卡
- 撤销、退款与对账
安全的旅游结账
融入您预订流程的旅游支付网关集成
客户在您自己的结账页面支付机票、酒店、旅游线路和接送费用,而不是通过一个脱离系统的支付链接。预订系统发送金额、币种和预订编号;网关返回预订可据以处理的结果。
同一流程适用于机票预订软件、酒店预订引擎和旅游运营商软件:预订先被锁定,再收取付款,只有付款成功后才向供应商确认。
多币种
以您的服务商和商户账户支持的币种展示并结算。
安全认证
令牌化银行卡、3D Secure 以及服务商自身的风控检查。
可追溯记录
交易、预订、退款和结算编号始终保持关联。
PT-48213- 信息
- 付款
- 3D Secure
- 已确认
- 机票,2 位成人$612.00
- 酒店,3 晚$438.00
- 预订手续费$15.00
- 机票,2 位成人€566.00
- 酒店,3 晚€405.00
- 预订手续费€14.00
- 机票,2 位成人£486.00
- 酒店,3 晚£348.00
- 预订手续费£12.00
银行卡信息直接发送至您的网关
示例金额。币种、支付方式和费用取决于您的网关和商户账户。
交易生命周期
支付状态与预订状态如何同步变化
银行卡通过并不意味着旅游付款已完成。选择一个场景,查看网关在每一步报告什么、预订又做了什么。
已支付并确认
已扣款已确认- 0100:00预订将金额、币种和编号发送至网关支付待处理预订锁定中
- 0200:04网关通过银行卡并冻结资金支付已授权预订锁定中
- 0300:09供应商确认预订支付已授权预订已确认
- 0400:10冻结资金完成扣款支付已扣款预订已确认
- 0500:11签名 webhook 按预订保存支付已扣款预订已确认
在供应商确认后再扣款,意味着客户绝不会为一个不存在的预订付费。
3D Secure 验证
已扣款已确认- 0100:00预订将金额、币种和编号发送至网关支付待处理预订锁定中
- 0200:03银行要求 3D Secure 验证支付需操作预订锁定中
- 0300:41客户完成验证,付款获得授权支付已授权预订锁定中
- 0400:46供应商确认预订支付已授权预订已确认
- 0500:47冻结资金完成扣款支付已扣款预订已确认
客户验证期间预订保持锁定。若验证失败或超时,锁定被释放,不会产生任何扣款。
价格变动
已扣款已确认- 0100:00扣款前与供应商重新核价支付未开始预订锁定中
- 0200:02向客户展示新价格以供确认支付未开始预订已重新核价
- 0300:30客户接受,按新金额创建付款支付待处理预订已重新核价
- 0400:34网关通过银行卡并冻结资金支付已授权预订已重新核价
- 0500:39供应商确认预订支付已授权预订已确认
- 0600:40冻结资金完成扣款支付已扣款预订已确认
付款前重新核价,可避免旅行社承担一笔它从未看到的涨价。
付款后供应商失败
已撤销失败- 0100:00预订将金额、币种和编号发送至网关支付待处理预订锁定中
- 0200:04网关通过银行卡并冻结资金支付已授权预订锁定中
- 0300:12供应商拒绝预订支付已授权预订失败
- 0400:13扣款前撤销授权,不产生费用支付已撤销预订失败
- 0500:14客户与运营团队收到含两个编号的通知支付已撤销预订失败
由于资金只是被授权,所以通过撤销而非退款释放。若服务商立即扣款,这一步就变成退款。
示意流程。资金是先授权还是立即扣款,取决于网关和您的设置。
底层机制
携带预订编号的请求、webhook 与退款
每次对网关的调用都携带预订编号和幂等键,网关发来的每个事件在修改预订前都会先经验证。
- 1预订编号作为元数据随请求传递,因此服务商后台与您的管理面板显示同一笔预订。
- 2幂等键可防止双击或网络重试导致重复扣款。
- 3金额以最小货币单位发送,并附带明确的币种代码。
- 1在任何更改发生之前,先用您的 webhook 密钥校验签名。
- 2事件类型决定预订动作:确认、释放或标记待审核。
- 3同一事件的重复投递会被识别并忽略。
- 1部分退款金额用于覆盖旅行社或供应商保留的取消费用。
- 2退款指向原始付款和已取消的预订。
- 3原因代码发送给服务商并写入您的记录,用于客服和争议处理。
POST /v1/paymentsIdempotency-Key: bk_PT-48213_a1{ "amount": 106500, "currency": "USD", "capture": "after_confirmation", "metadata": { "booking": "PT-48213", "pnr": "X7K2LM" }}POST /webhooks/paymentsSignature: t=1791012345,v1=5f3ac1…{ "id": "evt_8841", "type": "payment.captured", "payment": "pay_3QK19", "metadata": { "booking": "PT-48213" }}→ 200 OK booking=PT-48213 status=confirmedPOST /v1/refundsIdempotency-Key: rf_PT-48213_1{ "payment": "pay_3QK19", "amount": 41800, "currency": "USD", "reason": "cancelled_by_customer", "metadata": { "booking": "PT-48213", "retained_fee": 2000 }}通用示例。字段名称以您所选网关的 API 为准。
旅游行业专属运营
应对旅游业务突发状况的支付控制
价格会变、供应商会出错、客户会取消。每项控制都针对运营团队经常面对的一种情况。
- 情况01
酒店价格在搜索与付款之间上涨。
控制价格重新核验
在向客户扣款前确认供应商最新价格,任何变动都会展示给客户确认。
- 情况02
客户在网络缓慢时点了两次「支付」。
控制幂等预订流程
重复请求返回首次结果,而不是产生第二笔扣款或第二个预订。
- 情况03
客户以欧元支付,供应商以美元开票。
控制币种与加价规则
结账币种、预订价值、加价和结算金额分别记录。
- 情况04
五晚住宿中取消了两晚。
控制撤销与部分退款
全额或部分退回都关联到引发它的取消或变更。
- 情况05
持卡人在旅行数月后对一笔扣款提出争议。
控制争议与拒付
服务商事件、认证结果和预订文件一并保存作为证据。
- 情况06
收到一条针对已取消预订的 webhook。
控制Webhook 与告警
经验证的事件更新预订;不匹配的内容会被标记,交由人工审核。
服务商覆盖
为您的市场和客户选择网关
可用性取决于商户审核、国家覆盖、币种和支付方式。许多旅行社会将一个全球银行卡网关与一家区域服务商以及一种 B2B 结算方式组合使用。
- A
全球银行卡网关
银行卡受理、令牌化、3D Secure、退款和多市场结账。
- B
区域服务商
本地币种、本地支付通道和特定市场的支付方式。
- C
数字钱包
为偏好使用已认证钱包账户的客户提供更快的结账。
- D
B2B 支付流程
代理授信、手工付款记录和受控的支付工作流。
| 需求 | A全球银行卡网关 | B区域服务商 | C数字钱包 | DB2B 支付流程 |
|---|---|---|---|---|
| 国际银行卡 | 通常覆盖 | 通常覆盖 | 视服务商而定 | 通常不适用 |
| 本地支付方式与银行通道 | 视服务商而定 | 通常覆盖 | 视服务商而定 | 通常不适用 |
| 3D Secure | 通常覆盖 | 视服务商而定 | 视服务商而定 | 通常不适用 |
| 退款与撤销 | 通常覆盖 | 视服务商而定 | 视服务商而定 | 通常覆盖 |
| 多种币种 | 通常覆盖 | 视服务商而定 | 视服务商而定 | 视服务商而定 |
| 代理授信与押金 | 通常不适用 | 通常不适用 | 通常不适用 | 通常覆盖 |
- 通常覆盖
- 视服务商而定
- 通常不适用
项目范围
确定您的支付集成范围所需的内容
清晰的服务商账户和明确的交易流程让我们能准确界定范围、测试和交付。勾选您已具备的项目。
0/5已就绪
范围清单
上线路径
- 01
沙盒密钥
平台对接服务商的测试环境运行。
- 02
测试用例
通过、拒绝、3D Secure、撤销和退款,每项都在测试预订上验证。
- 03
Webhook 端点
签名已校验,每种事件类型都映射到一个预订动作。
- 04
生产密钥
启用正式凭据,并监控失败的付款。
它将旅游预订网站或门户连接到支付服务商,让客户在结账时付款,同时预订系统可以安全地按每笔预订跟踪授权、扣款、退款和支付状态。
PHPTRAVELS 支持集成目录中列出的多种全球和区域网关。合适的选择取决于您所在的国家、商户审核、币种、支付方式以及您账户可用的服务商 API。
可以,前提是所选网关和商户账户支持您需要的展示币种和结算币种。汇率换算、加价和结算规则在项目范围确定阶段落实。
当服务商支持且已为您的商户账户启用时,3D Secure 包含在内。集成负责处理认证结果、跳转或内嵌验证以及最终的支付状态。
可以,只要服务商 API 支持。全额或部分退款、撤销和取消费用都会关联到相应的预订和交易编号。
由支付公司提供。您在所选服务商处开设商户账户,并直接与其商定费用。PHPTRAVELS 使用您提供的凭据将您的平台连接到该账户。
