错误码
判单规则
客户对接时,建议先确认 HTTP 请求已成功受理,再结合响应体中的 code 与 data.orderStatus 判断业务结果。请注意:code=00000 仅表示请求已受理,不等于交易成功;success 仅表示本次接口调用成功,不建议单独作为商户侧最终判单依据。
| 维度 | 作用 | 对接建议 |
|---|---|---|
success | 判断本次接口调用是否成功 | 仅作辅助判断,不单独作为最终结果 |
code | 请求受理结果或失败原因 | 00000 表示请求已受理;其他值表示请求未受理或失败原因 |
data.orderStatus | 订单状态 | 有交易数据时返回;仅终态可作为最终业务结果判断依据 |
推荐判单逻辑
code != 00000:请求未受理,按错误码处理,不应将订单判定为成功。code = 00000且data.orderStatus = PENDING:订单已受理但仍处于处理中,属于非终态,应等待异步通知或继续查询。code = 00000且data.orderStatus ∈ {SUCCESS, PARTIAL SUCCESS, FAILED, EXPIRED, CANCELLED, REFUNDED}:订单已进入终态,可按状态进行入账、关单或退款处理。
常见订单状态
| 状态 | 含义 | 是否终态 | 对接建议 |
|---|---|---|---|
PENDING | 待支付或处理中 | 否 | 不可作为最终结果,等待异步通知或继续查询 |
SUCCESS | 交易成功 | 是 | 可作为成功入账依据 |
PARTIAL SUCCESS | 完成部分支付,拉单金额与实际支付金额不一致 | 是 | 按实际支付金额入账或按商户业务规则处理差额 |
FAILED | 交易失败 | 是 | 可作为失败关单依据 |
EXPIRED | 订单过期 | 是 | 可作为失败关单依据 |
CANCELLED | 用户取消 | 是 | 可作为失败关单依据 |
REFUNDED | 已退款 | 是 | 按退款结果处理 |
常见业务错误码
| Code | 说明 | 含义 | 对接建议 |
|---|---|---|---|
| 00000 | 请求已受理 | 平台已成功接收请求 | 继续根据 data.orderStatus、异步通知或查询接口判断最终结果 |
| 40001 | 参数格式错误 | 参数格式不正确或必填字段缺失 | 修正参数后重新提交 |
| 40002 | 请求已过期 | 时间戳无效或请求过期 | 校准服务器时间后重新提交 |
| 40003 | 余额不足 | 账户余额不足 | 充值或确认余额后重试,勿直接重复提交无效请求 |
| 40004 | 商户状态异常 | 商户账户异常 | 联系商务或运营人员处理 |
| 40101 | 签名错误 | 签名校验失败 | 检查签名串、密钥、大小写和空值过滤规则 |
| 40102 | 未授权 | API Key 无效 | 检查商户访问标识是否正确 |
| 40301 | IP未授权 | IP不在白名单 | 联系商务或运营配置白名单 |
| 40401 | 订单不存在 | 未查询到订单 | 如为提单后立即查单,建议间隔 3-5 秒后重试;若多次仍不存在,请核对商户订单号 |
| 40402 | 商户不存在 | 未查询到商户 | 检查商户配置是否正确 |
| 40901 | 订单重复 | 交易号已存在 | 不要重新生成重复订单;请使用原 merchantOrderNo 查询原订单结果 |
| 50001 | 服务异常 | 服务器内部错误 | 不要直接判失败,建议先查单确认;代付场景如仍不明确,请联系客服核对 |
| 50002 | 系统错误 | 系统处理异常 | 不要直接判失败,建议先查单确认;代付场景如仍不明确,请联系客服核对 |
