通用错误码

HTTP 状态、错误码与调用方处理方式

通用错误码 ​

错误响应格式见接入说明。程序判断请使用 error.code,不要使用 message。

HTTPerror.code触发条件调用方处理
400INVALID_REQUEST格式错误、缺少必填字段、字段类型不对、有未声明字段、重复字段、游标无效修正请求,不要原样重试
401AUTHENTICATION_FAILED凭据或签名错误检查密钥和签名串
401REQUEST_EXPIREDX-Timestamp 超出 ±300 秒校准服务器时间,用新时间戳重新签名
403MERCHANT_DISABLED商户已停用新业务联系平台。已受理的资金仍可查单
403SCOPE_DENIED凭据没有该接口权限联系平台确认开通范围
403LAUNCH_DENIED当前不允许该玩家进入游戏检查玩家和商户状态
404RESOURCE_NOT_FOUND资源不存在,或不属于当前商户检查 ID
404TRANSACTION_NOT_FOUND查无此交易如果原请求可能还在途,稍后用同一 ID 再查
409INSUFFICIENT_FUNDS可用余额不足终态失败,没有扣款
409FUNDS_UNAVAILABLE有未确认的资金占用稍后重试,或先查询未完成的交易
409IDEMPOTENCY_CONFLICT同一幂等键或 external_id 对应了不同的请求内容停止重试,检查业务 ID 是否复用
409REQUEST_IN_PROGRESS同一请求还在处理中稍后查询原资源,不要重新发起
409CANCELLATION_NOT_ALLOWED任务已经派发,不能取消按原任务查询结果
409INVALID_TRANSACTION_REFERENCE资金关联不合法检查关联的交易
410CURSOR_EXPIRED游标已过期按注单记录重新建立读取
412VERSION_CONFLICTIf-Match 版本不匹配重新读取后再决定是否提交
413PAYLOAD_TOO_LARGEbody 超过 1 MiB缩小请求
422VALIDATION_FAILED金额或参数的值不合法,例如精度超过币种的 decimal_scale修正参数。平台不会自动舍入
422UNSUPPORTED_CAPABILITY当前商户或钱包模式不支持该功能查看 capabilities
422CURRENCY_NOT_SUPPORTED币种未开通使用已开通的币种
422GAME_NOT_AVAILABLE游戏未授权、维护中或暂不可启动查看游戏列表中的 status 和 launch_supported
428PRECONDITION_REQUIRED缺少必需的 If-Match补充请求头
429RATE_LIMITED超出调用频率按 Retry-After 等待。资金请求重试时保持原 ID
500INTERNAL_ERROR平台内部错误资金请求要查单确认,不能直接当作失败
503DEPENDENCY_UNAVAILABLE依赖服务暂时不可用,例如商户钱包无法确认余额资金请求要查单确认,不能直接当作失败

retryable 的含义

retryable=true 只说明这次传输可以重试,不说明钱有没有变化。资金请求重试时必须使用原来的 external_id 和 Idempotency-Key,并换新的 X-Timestamp 重新签名。

调用频率 ​

默认限额(以 capabilities.limits 返回的值为准):

类别默认
注单查询每个商户 2 次/秒
其他查询每个商户 10 次/秒
写入每个商户 5 次/秒

商户回调应返回的错误码 ​

单一钱包回调失败时,商户同样返回错误格式。常用的错误码:

场景HTTPerror.code
凭据或签名校验失败401AUTHENTICATION_FAILED
时间戳超出 ±300 秒401REQUEST_EXPIRED
玩家不存在404RESOURCE_NOT_FOUND
查无此交易(retryable 必须为 false)404TRANSACTION_NOT_FOUND
币种不支持422CURRENCY_NOT_SUPPORTED
同一 transaction_id 对应了不同的请求内容409IDEMPOTENCY_CONFLICT
暂时无法处理503DEPENDENCY_UNAVAILABLE

余额不足不要用 HTTP 错误表示,要返回 201,并带 status=FAILED 和 failure.code=INSUFFICIENT_FUNDS,见改变玩家余额。

最后更新于 12小时前