交易撤销
本地收单
交易撤销
交易撤销(Void)用于作废当天已付款但尚未结算的订单。订单撤销后视为交易未发生,资金直接退回用户,不进入商户结算。目前仅支持泰国动态二维码(TH_THAILAND_DYNAMIC_QR)场景。
1
撤销与退款的区别
| 维度 | 交易撤销 | 退款 |
|---|---|---|
| 适用时间 | 仅当天已付款但未结算的订单 | 已结算的订单(通常有较长退款期限) |
| 资金流向 | 订单未结算,直接作废,资金未实际结算给商户 | 订单已结算,需从商户账户退回资金给用户 |
| 支持范围 | 目前仅支持泰国动态二维码(TH_THAILAND_DYNAMIC_QR) | 支持更广泛的渠道与国家 |
备注
为什么撤销更「干净」:撤销针对尚未结算的订单,相当于交易从未发生,没有「退款 → 资金回到商户账户 → 再扣除」的环节,对账更简单。
2
业务流程
3
撤销状态
| 状态 | 说明 |
|---|---|
| SUCCESS | 撤销成功,订单已作废,资金退回用户 |
| FAILED | 撤销失败(如已结算、跨天、订单不存在) |
| PENDING | 撤销处理中 |
4
适用范围与撤销规则
支持范围
| 国家 / 渠道 | 是否支持撤销 | 说明 |
|---|---|---|
| 泰国 · 动态二维码(TH_THAILAND_DYNAMIC_QR) | ✅ 支持 | 当天未结算订单可撤销 |
| 其他国家 / 渠道 | ❌ 暂不支持 | 请改用退款/代付流程 |
注意
撤销能力由本地支付体系的结算规则决定。目前仅泰国动态二维码支持撤销,其他国家结算机制不同,暂未开放。
撤销前提
- 仅当天可撤销:只有当天的订单可以撤销,跨天则无法撤销
- 仅未结算订单:已结算的订单无法撤销,需走退款流程
跨天界定
| 场景 | 能否撤销 |
|---|---|
| 当天晚上 11 点前付款的订单,当天 11 点前撤销 | ✅ 可以撤销 |
| 当天晚上 11 点前付款的订单,当天 11 点之后撤销 | ❌ 不能撤销(已跨天) |
| 跨天的订单 | ❌ 不能撤销 |
撤销失败后的处理
当撤销返回 FAILED 时,常见原因为订单已结算、已跨天或订单不存在:
- 订单已结算或已跨天:无法撤销,可以考虑通过代付形式打款给用户
- 订单不存在或状态不确定:请先在商户平台或通过查询接口核对订单状态,再决定是否退款或重新发起;仍有疑问请联系 PayCools 客户支持
5
应用场景
- 当天订单作废:用户当天支付后取消订单,且订单尚未结算
- 误操作处理:商户误收款或金额错误,当天内撤销原订单后重新发起
6
接口说明
| 参数 | 说明 |
|---|---|
| countryCode | 国家编码(TH) |
| originalTransactionId | 原交易 ID |
| mchVoidOrderId | 撤销请求流水号(商户生成,唯一) |
备注
完整的 API 参数说明、请求 / 响应示例,请参考 API 文档 。