支付结果通知
支付平台会通过服务器异步通知(notify_url)和页面跳转通知(return_url)两种方式将支付结果通知给商户系统。
通知方式
| 通知类型 |
说明 |
服务器异步通知
notify_url |
支付成功后,支付平台服务器会主动发送通知到商户系统。该通知方式为异步通知,可能会重复发送,商户系统必须正确处理重复通知的情况。 |
页面跳转通知
return_url |
支付成功后,浏览器会自动跳转到商户系统提供的页面。主要用于支付完成后给用户展示支付结果。 |
请求信息
通知参数
| 参数名 |
类型 |
示例值 |
说明 |
| pid |
Int |
1001 |
商户ID |
| trade_no |
String |
20160806151343349 |
平台订单号 |
| out_trade_no |
String |
20160806151343351 |
商户订单号 |
| api_trade_no |
String |
40001249985198893 |
接口订单号(微信支付宝返回的单号) |
| type |
String |
alipay |
支付方式,详见支付方式列表 |
| trade_status |
String |
TRADE_SUCCESS |
交易状态,固定为TRADE_SUCCESS |
| addtime |
String |
2024-07-01 16:47:32 |
订单创建时间 |
| endtime |
String |
2024-07-01 16:49:24 |
订单完成时间(仅完成才返回) |
| name |
String |
商品名称 |
商品名称 |
| money |
String |
1.00 |
商品金额 |
| param |
String |
{"id":"123"} |
业务扩展参数 |
| buyer |
String |
oUpF8uMuAJO_M2pxb1Q9zNjWeS6o |
支付用户标识,一般为openid |
| timestamp |
String |
1721206072 |
当前时间戳,10位整数,单位秒 |
| sign |
String |
|
签名字符串,详见签名规则 |
| sign_type |
String |
RSA |
签名类型,默认为RSA |
返回结果
收到异步通知后,需返回字符串 success 以表示服务器接收到了订单通知。
通知示例
异步通知参数示例:
pid=1001&trade_no=20160806151343349&out_trade_no=20160806151343351&type=alipay&api_trade_no=40001249985198893&trade_status=TRADE_SUCCESS&addtime=2024-07-01+16%3A47%3A32&endtime=2024-07-01+16%3A49%3A24&name=%E5%95%86%E5%93%81%E5%90%8D%E7%A7%B0&money=1.00¶m=%7B%22id%22%3A%22123%22%7D&buyer=oUpF8uMuAJO_M2pxb1Q9zNjWeS6o×tamp=1721206072&sign=xxxxx&sign_type=RSA
其他说明
注意事项
- 商户系统必须对通知参数中的
sign 进行签名验证,并且判断 trade_status 是否为
TRADE_SUCCESS。
- 支付平台可能会增加回调字段,验证签名时必须支持增加的扩展字段。
- 异步通知可能会多次发送,请确保服务器对重复通知的正确处理。
- 对于收到的异步通知,如果未返回
success 字符串,支付平台会重复发送通知。
- 建议在处理异步通知时,先验证签名和通知参数,再进行业务处理,最后返回结果,以确保通知的正确性。