支付成功异步通知接口
用户支付成功后,平台会发送异步通知到订单携带的notify_url(如果有该参数的话),请求方式为 POST
请求参数:
字段名称 | 字段类型 | 必填参数 | 说明 |
---|---|---|---|
return_code | int(1) | Y | 1:支付成功 |
total_fee | int(16) | Y | 金额。单位:分 |
out_trade_no | string(32) | Y | 用户端自主生成的订单号 |
payjs_order_id | string(32) | Y | 订单号 |
transaction_id | string(32) | Y | 微信用户手机显示订单号 |
time_end | string(32) | Y | 支付成功时间 |
openid | string(32) | Y | 用户OPENID标示,本参数没有实际意义,旨在方便用户端区分不同用户 |
attach | string(127) | N | 用户自定义数据 |
mchid | string(16) | Y | 商户号 |
sign | string(32) | Y | 数据签名 详见签名算法 |
提示:
- 接收通知的服务器请在3秒钟内响应(http状态码200则标记通知成功,其它状态码则标记通知失败,推送结束)
- 为保障推送到达率,系统可能多次进行通知推送,请做好去重逻辑
- 推送可能增加参数,请做好冗余处理,勿使用 hard code
- 商户系统对于支付结果通知的内容一定要验签,并校验返回的订单金额是否与商户侧的订单金额一致
- 通知频率(秒):0,15,30,180,1800,3600。超过1小时后如需推送,可以在后台手动补发
特别提醒:接收异步通知的服务器需在大陆境内备案服务器
接收回调流程示例:
$data = $_POST;
if($data['return_code'] == 1){
// 1.验签逻辑
// 2.验重逻辑
// 3.自身业务逻辑
// 4.返回 success 字符串(http状态码为200)
echo 'success';
}