跳转到内容

回调与错误码

订单是异步履约的:创建订单只代表受理成功,最终结果通过回调或查询获得。本页说明回调格式、重试策略与所有错误码。

订单到达终态(success / failed / refunded)时,平台向 notifyUrl 发送 POST 请求,Content-Type 为 application/json:

{
"orderId": "T2026092912345678",
"outOrderNo": "ORD20260929001",
"goodsId": "G100001",
"quantity": 1,
"status": "success",
"cards": [],
"failReason": "",
"finishedAt": "2026-09-29T10:00:08+08:00"
}

回调请求头同样携带 X-App-Id、X-Timestamp、X-Nonce、X-Sign,签名算法与请求一致(payload 为 body 原文),请务必验签后再处理。

您需要在 5 秒内返回 HTTP 200,且响应体为字符串 success;其他响应均视为未送达。

  • 未收到 success 时,按 1 分钟、5 分钟、30 分钟、2 小时、6 小时、24 小时共重试 6 次;
  • 重试期间可主动调用查询订单获取状态;
  • 回调可能重复到达,请按 outOrderNo 做幂等处理;
  • 6 次重试后仍失败,可在控制台「订单管理」中手动重发回调。
code含义处理建议
0成功—
1001签名错误检查 AppSecret 与 stringToSign 的拼接顺序,确认 body 未被二次格式化
1002时间戳过期校准服务器时间,误差需在 300 秒内
1003IP 未在白名单在控制台「应用管理」中添加出口 IP
1004请求过于频繁降低频率,默认限制 50 次/秒;需要更高额度请提交工单
2001商品不存在核对 goodsId
2002商品已下架重新拉取商品列表
2003库存不足稍后重试或更换商品
3001余额不足前往控制台充值
3002重复订单号outOrderNo 已存在,接口返回原订单,请勿视为失败
3003充值账号格式错误按商品的 accountRule 校验后重试
4001充值失败,已退款查看 failReason,可更换商品重试
5000系统繁忙3 秒后重试;连续失败请联系技术支持并提供 requestId

不会。沙箱订单在 10 秒内自动流转为成功或失败(账号以 1370000 开头的直充订单固定失败,用于验证失败流程),不产生费用。

cardPwd 使用 AES-128-CBC 加密后 Base64 编码;密钥为 AppSecret 的前 16 位,IV 为 AppId 的前 16 位(不足 16 位右侧补 0)。解密后请勿明文落库。

话费、会员类通常 10 秒内到账;运营商维护期间可能延迟至 24 小时,此时订单保持 processing,请以回调为准。

超过 30 分钟未到终态,请联系技术支持并提供 orderId,我们会向上游核实并在处理后补发回调。

在控制台提交工单,说明业务峰值(每秒请求数)与持续时间,通常 1 个工作日内调整。