开放平台API设计---HTTP错误码返回

HTTP错误码返回

HTTP Status Code

Code Note 注解
200 - OK Everything worked as expected. 一切都按预期工作。
400 - Bad Request The request was unacceptable, often due to missing a required parameter. 该请求是不可接受的,通常是由于缺少必需的参数。
401 - Unauthorized No valid API key provided. 没有提供有效的API密钥。
403 - Forbidden The server understood the request, but is refusing to fulfill it. 参数有效但请求失败。
404 - Not Found The requested resource doesn't exist. 请求的资源不存在。
409 - Conflict The request conflicts with another request (perhaps due to using the same idempotent key). 请求与另一个请求冲突(可能是由于使用相同的幂等密钥)。
429 - Too Many Requests Too many requests hit the API too quickly. We recommend an exponential backoff of your requests. 太多请求过快地命中了API。我们建议您对请求进行指数退避。
500, 502, 503, 504 - Server Errors Something went wrong on Onepay's end. (These are rare.) Onepay内部服务器错误。(这些很少见。)

以上公共响应码放在http请求头中,200正常请求返回请求体,400,401,404,409,429,500,502,503,504统一由网关负责处理,403返回业务错误码并细分详细的业务错误码

httpCode-200-请求返回

{
  "source": {
    "id": "string,source的id",
    "object": "string",
    "amount": "string,支付金额",
    "created": "string,创建时间",
    "currency": "string,币种",
    "flow": "string,验证source流程:redirect, receiver, code_verification, none",
    "livemode": "string,模式",
    "metadata": {},
    "status": "string,source状态,chargeable,failed,pending",
    "type": "string,source类型",
    "usage": "string,是否可重复使用",
    "card": {
      "exp_month": "string,信用卡有效期月",
      "exp_year": "string,信用卡有效期年",
      "brand": "string,银行卡种类(银联、VISA 、万事达等)",
      "country": "string,发卡行地区",
      "cvc_check": "string,安全码",
      "funding": "string,卡类型(储蓄卡、信用卡)",
      "last4": "string,卡号后四位",
      "bank_name": "string,银行名称",
      "number": "string,银行卡号",
      "id_card_number": "string,身份证号",
      "phone": "string,预留手机号",
      "name": "string,持卡人姓名"
    }
  }
}

httpcode-400-请求返回

{
    "code": "0x1001",
    "message": "参数校验失败",
    "detail": "缺少必填参数:signType||缺少必填参数:merchantNo"
}

httpcode-403-请求返回

{
    "code": "0x1001",
    "message": "加解密错误",
    "detail": "加解密错误"
}

httpcode-500-请求返回

{
    "code": "0x1004",
    "message": "系统异常",
    "detail": "数据库错误"
}

错误码类型

  • 平台通用类 (0x1001-0x101E)
  • 订单类 (0x101F-0x103C)
  • 商户类 (0x103D-0x105A)
  • 鉴权中心 (0x105C-0x1097)
  • 交易类 (0x1098-0x10F2)

平台通用类异常

HTTP状态码 错误码 错误描述 错误详情
400 0x1001 参数校验异常
401 0x1002 签名错误
403 0x1003 加解密错误
500 0x1004 系统异常
403 0x1005 查询结果不存在

订单类异常

HTTP状态码 错误码 错误描述 错误详情
403 0x101F 商品明细总额与订单金额不相等
403 0x1020 商户订单已存在
403 0x1021 商户订单状态错误

商户类异常

HTTP状态码 错误码 错误描述 错误详情
403 0x103D 商户配置错误 商户未配置安全秘钥
商户未配置通道
商户未配置路由模板<Br>商户配置通道参数有误
商户配置通道扩展信息错误

鉴权中心

HTTP状态码 错误码 错误描述 错误详情
403 0x105C 该卡正在绑定,请勿重复绑定
403 0x105D 该卡已签约,请勿重复签约
403 0X105E 预绑卡异常
403 0x105F 此银行不支持,请更换银行卡
403 0x1060 银行卡验证失败 BF00140 该卡已被注销
BF00141 该卡已挂失
BF00237 该卡已冻结,请联系发卡行
BF00101 持卡人信息有误
BF00236 卡号无效,请确认后输入
BF00343 验证失败(手机号有误)
BF00346 验证失败(身份证号有误)
BF00355 验证失败(卡状态异常)
403 0x1061 预绑卡信息不存在
403 0X1062 用户银行卡信息不存在
403 0X1063 绑卡异常 交易失败,请联系发卡行 <Br> 交易超时,请稍后查询

交易类异常

HTTP状态码 错误码 错误描述 错误详情
403 0x1098 请求支付通道报文错误 BF00121 报文交易要素格式错误
403 0x1099 支付通道商户配置错误 BF00123 商户不存在或状态不正常,请联系宝付
BF00116 该终端号不存在
BF00124 商户与终端号不匹配
BF00316 ip未绑定,请联系宝付
BF00313 该商户未开通此产品
BF00127不支持该支付通道的交易
403 0x109A 支付通道请求异常 BF00100 系统异常,请联系宝付
BF00112 系统繁忙,请稍后再试
403 0x109B 支付通道签名异常 BF00450签名验证失败
BF00437不支持的密钥类型
BF00118报文中密文解析失败
403 0x109C 支付通道交易异常 BF00436交易类型不存在
BF00190商户流水号不能重复
BF00249订单已过期,请使用新的订单号发起交易
BF00332 交易失败,请重新支付
BF00126该笔订单已存在
BF00128该笔订单不存在
BF00136订单创建失败
403 0x109D 支付通道交易查询异常 BF00113交易处理中,请稍后查询
403 0x109E 短信验证码异常 BF00105短信验证码错误
BF00106短信验证码失效
BF00261 短信验证码错误次数超限,请重新获取
BF00260 短信验证码已过期,请重新发送
BF00255发送短信验证码失败
403 0x109F 支付通道手机号码异常 BF00258手机号码校验失败
403 0x10A0 支付通道银行卡异常 BF00107当前银行卡不支持该业务,请联系发卡行
BF00327请联系银行核实您的卡状态是否正常
BF00325目前该银行正在维护中,请更换其他银行卡支付
BF00421持卡人已与银行解绑,请重新绑卡后再进行支付
403 0x10B0 无此流水信息
403 0x10B1 未查到该用户的签约信息
403 0x10B2 未路由到可用通道
403 0x10B3 未查询到可用的支付渠道
403 0x10B4 未查询到用户的账户信息
403 0x10B5 分账信息格式异常
403 0x10B6 渠道商户信息配置异常
403 0x10B7 银行卡余额不足 BF00103账户余额不足
403 0x10B8 订单已支付成功,请勿重复支付 BF00114订单已支付成功,请勿重复支付
403 0x10B9 绑定关系不存在 BF00134绑定关系不存在
403 0x10BA 交易金额不正确 BF00135交易金额不正确
403 0x10BB 交易金额与扣款成功金额不一致 BF00262交易金额与扣款成功金额不一致,请联系宝付
403 0x10BC 单卡单日余额不足次数超限 BF00342单卡单日余额不足次数超限
403 0x10BD 交易金额超限制 BF00104交易金额超限
BF00234单日交易金额超限!
BF00235单笔交易金额超限
BF08703支付金额需大于最低限额{}元!
BF08704单笔金额超限,该银行单笔可支付{}元!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 每个支付渠道都有自己的一套错误码定义,需要对这些错误码进行抽象,做一套映射,针对用户做正确的提示。支付系统和外部渠...
    zlmind阅读 11,614评论 0 0
  • 作者:顾冬煜本文为原创文章,转载请注明作者及出处 前言 在公司内部解决后端和前端对于错误码争论的过程中,与一些纵线...
    沪江技术学院阅读 10,583评论 0 25
  • abort方法使用场景 在api开发中,当视图处理http请求的时候会出现错误的情况。当发现这种情况,如果需要返回...
    Devops海洋的渔夫阅读 3,980评论 0 1
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,732评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 11,274评论 0 4