异步回调
回调地址设置
在商户后台设置回调地址
回调机制
支付成功后,平台服务器将以POST方式请求指定的回调地址; 第三方接受到回调,程序执行完后必须返回响应参数,如果返回的不是指定的参数,平台服务器会不断重发通知16次;
回调签名规则
- 对所有回调参数(剔除sign参数),根据参数名称的ASCII码表的顺序排序;
- 将排序好的参数名和参数值拼装在一起,用&符号连接;
- 在拼接好的字符串后面无缝添加商户密钥(商户平台Secret)
把拼装好的字符串采用utf-8编码,使用MD5算法,将字符串进行32位大写加密
签名字符串示例:
data={"merchant_order_sn":"201706061496744418150","total_fee":99}&result_code=200&result_message=成功4fdd3c041fa436f0d53fe869f9b9029d
- 回调参数:
参数 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
result_code | int | 是 | 10 | 状态码 |
result_message | string | 是 | 32 | 状态信息 |
sign | string | 是 | 32 | 回调签名 |
data | string | 是 | - | 回调业务参数的集合 |
- 回调业务参数:
参数 | 类型 | 是否必填 | 最大长度 | 描述 |
---|---|---|---|---|
merchant_order_sn | string | 是 | 32 | 第三方商户的订单号 |
total_fee | float | 是 | 10 | 订单金额(元),精确到2位小数 |
- 平台服务器响应示例:
{
"data":"{"merchant_order_sn":"201706061496753590676","total_fee":99}",
"result_code":"200",
"result_message":"成功",
"sign":"9F4E2E841C71B2D3F24DB6C5C3711890"
}
- 第三方如果接收回调接口处理完成要返回如下格式(不区别大小写的success)让回调结束
success / SUCCESS
- 提示: 如果在商户后台设置的回调地址包含参数并且获取平台服务器回调的信息包含该参数,在拼接回调签名的字符串时需剔除sign参数以及回调地址携带的参数,否则签名无法通过。