支付结果通知
支付平台会通过服务器异步通知(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
字符串,支付平台会重复发送通知。
- 建议在处理异步通知时,先验证签名和通知参数,再进行业务处理,最后返回结果,以确保通知的正确性。