所有的API请求必须使用HTTPS。
所有的API请求必须使用HTTPS。
Content-Type: application/json
Accept: application/json
图片上传API除外。
微信支付API v3仅支持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
中。当需要微信支付帮助时,请提供请求的唯一标识,以便我们更快的定位到具体的请求。
微信支付API v3使用HTTP状态码来表示请求处理的结果。
当请求处理失败时,除了HTTP状态码表示错误之外,API将在消息体返回错误相应说明具体的错误原因。
code
:详细错误码
message
:错误描述,使用易理解的文字表示错误的原因。
field
:
指示错误参数的位置。当错误参数位于请求body的JSON时,填写指向参数的JSON Pointer 。当错误参数位于请求的url或者querystring时,填写参数的变量名。
value
:错误的值
issue
:具体错误原因
{
"code": "PARAM_ERROR",
"message": "参数错误",
"detail": {
"field": "/amount/currency",
"value": "XYZ",
"issue": "Currency code is invalid",
"location" :"body"
}
}
HTTP协议要求发起请求的客户端在每一次请求中都使用HTTP头 User-Agent
来标识自己。微信支付建议调用方选用以下两种方式的一种:
1.使用HTTP客户端默认的 User-Agent。
2.遵循HTTP协议,使用自身系统和应用的名称和版本等信息,组成自己独有的User-Agent
。
微信支付API v3很可能会拒绝处理无User-Agent
的请求。
微信支付API v3允许调用方声明应答中的错误描述使用的自然语言语种。如果有需要,设置请求的HTTP头Accept-Language
。目前支持:
当不设置或者值不支持时,将使用简体中文(zh-CN)。