交易状态
V4 交易 API 返回的 status 表示正向支付流程的结果。它是一个稳定的支付状态投影,与后续发生的退款、撤销、冲正或争议相互独立。
例如,支付成功后,即使后续发起 Void、退款或争议,交易状态仍保持为 capture_succeeded。请通过撤销支付、退款或拒付资源分别跟踪对应的支付后生命周期。
响应状态值
| 状态 | 说明 | 是否终态 |
|---|---|---|
processing | 支付已初始化、正在等待买家操作、处理中,或等待对账确认。请继续查询交易或等待 Webhook 通知。 | 否 |
capture_succeeded | 正向支付已成功完成,商户可将该笔支付视为成功。 | 是 |
capture_failed | 支付未能完成,也包括支付初始化失败的情况。如返回 error_code,可通过该字段查看失败原因。 | 是 |
cancelled | 当前支付尝试在完成前被取消。 | 是 |
expired | 当前支付尝试在完成前已过期。 | 是 |
不要仅根据 HTTP 状态码判断支付结果。API 请求成功时,交易的 status 仍可能是 processing 或 capture_failed。
状态流转
processing ──→ capture_succeeded
├────────→ capture_failed
├────────→ cancelled
└────────→ expired
同一次支付尝试进入终态后,不会再回到 processing。
交易列表筛选
交易列表接口支持使用上述响应状态值筛选。为保持向后兼容,该接口还接受以下更细粒度的筛选别名;响应中的状态仍会归一化为上述五个值之一。
| 筛选别名 | 对应的响应状态 |
|---|---|
authorization_pending、capture_pending、buyer_approval_pending、buyer_approval_succeeded | processing |
authorization_succeeded、settled | capture_succeeded |
authorization_failed、capture_failed、buyer_approval_failed | capture_failed |
authorization_void | cancelled |
buyer_approval_timeout | expired |
接入建议
- 仅在收到
capture_succeeded后进行订单履约。 - 将
processing视为非终态,并确保状态处理具有幂等性。 - 当状态为
capture_failed时读取error_code,不要直接进行无条件重试。 - 单独跟踪 Void、退款和拒付状态,不要预期它们会覆盖交易的正向支付状态。