基本规则

基本信息

所有的API请求必须使用HTTPS。

请求时不应忽略服务器证书验证的错误,避免被恶意劫持。

数据格式

使用 JSON 作为消息体的数据交换格式。请求须设置HTTP头部(图片上传API除外):

Content-Type: application/json
Accept: application/json

提示:
API应答中的数据有可能包含商户传入的数据,即可能是未经检查的用户输入内容。为了避免XSS(Cross-site scripting)攻击,请调用方在使用应答数据前根据场景做适当的转义或者过滤。

参数兼容性

  • 请求是否成功,与请求参数的顺序无关

  • 请求是否成功,与请求JSON中的键值对出现的顺序无关

  • 处理应答时,不应假设应答JSON中的键值对出现的顺序

  • 新的API版本可能在请求或应答中加入新的参数或者JSON的键值对

  • 新的API版本不会去除请求和应答中已经存在的必填参数或者JSON的键值对

  • 当请求或应答中的JSON键值对的值为空(null)时,可以省略

字符集

仅支持UTF-8字符编码的一个子集:使用一至三个字节编码的字符。也就是说,不支持Unicode辅助平面中的四至六字节编码的字符。

日期格式

所有的日期对象,使用 ISO 8601 所定义的格式。

示例:

yyyy-MM-DDTHH:mm:ss.SSSZ
yyyy-MM-DDTHH:mm:ssZ
yyyy-MM-DDTHH:mm:ss.SSS+08:00
yyyy-MM-DDTHH:mm:ss+08:00

请求的唯一标识

宝付给每个接收到的请求分配了一个唯一标识。请求的唯一标识包含在应答的HTTP头Request-ID中。当需要宝付帮助时,请提供请求的唯一标识,以便我们更快的定位到具体的请求。

错误信息

宝付统一网关使用HTTP状态码来表示请求处理的结果。

  • 处理成功的请求,如果有应答的消息体将返回200,若没有应答的消息体将返回204;

  • 已经被成功接受待处理的请求,将返回202;

  • 请求处理失败时,如缺少必要的入参、支付时余额不足,将会返回4xx范围内的错误码;

  • 请求处理时发生了宝付侧的服务系统错误,将返回500/501/503的状态码。这种情况比较少见。

错误码和错误提示

当请求处理失败时,除了HTTP状态码表示错误之外,API响应体将返回结构化的错误信息,用于明确说明错误原因,关于错误信息的解决方案请参考对应的API接口文档。

  • code:错误码,分为​​公共错误码​​和​​业务错误码​​,详见下方示例。

  • message:错误描述,详细说明当前报错的具体原因,同一code(错误码)可能对应多个不同的message(错误描述)。

公共错误码

错误码 错误描述
PARAM_ERROR 参数错误
INVALID_REQUEST HTTP 请求不符合接口规则
SIGN_ERROR 签名验证失败
SYSTEM_ERROR 系统异常,请稍后重试
NO_AUTH 商户无权限
//公共错误码返回示例
{
  "code": "SYSTEM_ERROR", 
  "message": "系统异常,请稍后重试" 
}

业务错误码(此处仅为示例,实际以API接口文档为准)

错误码 错误描述
OUT_TRADE_NO_USED 商户订单号重复
//业务错误码返回示例
{
  "code": "OUT_TRADE_NO_USED",
  "message": "商户订单号重复"
}

User Agent

HTTP协议要求发起请求的客户端在每一次请求中都使用HTTP头User-Agent来标识自己。宝付建议调用方选用以下两种方式的一种:

  1. 使用HTTP客户端默认的User-Agent。

  2. 遵循HTTP协议,使用自身系统和应用的名称和版本等信息,组成自己独有的User-Agent。

接口分类

请求方式 请求说明 参数格式
GET 资源查询请求,处理单参数查询请求 path参数 /a/b/{c}, 规定path参数在最后一截
GET 资源查询请求,处理多参数查询请求 query参数 ?a=1&b=2……
POST 资源操作请求 json post body