错误、状态检查和重试
始终检查 HTTP 响应和交易 status。 200 或 201 可以包含被拒绝或待处理的交易。
| HTTP 结果 | 整合行动 |
|---|---|
| 400 / 422 | 检查提供的字段、类型、金额精度和收件人。不要在循环中重新提交未更改的验证失败 |
| 401 | 检查凭证、其有效性和 API 主机 |
| 403 | 认证的账户或密钥缺少权限;不自动切换帐户 |
| 404 | 检查标识符和帐户上下文。这并不能证明另一个帐户没有此类资源 |
| 409 | 在创建其他内容之前检查冲突并恢复原始操作 |
| 429 | 当存在时尊重 Retry-After 并以有界退避重试读取 |
| Timeout / 5xx | 结果可能未知。重新提交前通过 id 或 txid 查找原始操作 |
错误响应形状可能因端点而异。最好有记录的机器可读错误代码(如果有); error_description 是人类可读的文本,而不是稳定的代码。从日志中删除或遮蔽凭据及支付工具数据。
交易结果
charged:交易成功完成。rejected或failed:检查原因及原操作;不报告成功。refunded或reversed:资金与新结算的付款有不同的结果。- 待处理/需要操作/未知状态:显示该状态和所需的用户操作。切勿仅根据无法识别的状态或时间戳来推断成功。
使用GET 交易 来验证操作。保留相同的 txid 以重试相同的业务指令。 Webhook 传送失败和支付处理失败是不同的事件。