回调通知注意事项
更新时间:2024.11.131、notify_url填写注意事项
● notify_url需要填写商户自己系统的真实地址,不能填写接口文档或demo上的示例地址。
● notify_url必须是以https://或http://开头的完整全路径地址,并且确保url中的域名和IP是外网可以访问的,不能填写localhost、127.0.0.1、192.168.x.x等本地或内网IP。
● notify_url不能携带参数。
● 常见错误举例:
错误描述 | 错误示例 |
---|---|
url中只有域名,缺少具体的路径 | http://www.weixin.qq.com |
url不是以https://或http://开头,缺少域名或IP | ./PayNotify.aspx |
url中填写了本地或者内网IP | http://127.0.0.1/pay/notify.php |
填写了不是url格式的字符串 | xxxxxxx,1234567,test |
2、返回报文格式规范
● 返回报文必须是xml格式,字段名需与接口文档说明的一致,报文前后和各字段标签中间不能包含特殊字符。
● 常见错误举例:
错误描述 | 错误示例 |
---|---|
返回内容为空或者非xml格式字符串 | ok,success,支付成功 |
返回的xml格式报文中间有其他字符 | <xml>\n<return_code><![CDATA[SUCCESS]]></return_code> |
返回的是json格式 | {"return_code":"SUCCESS";"return_msg":"OK"} |
返回的是整个页面的html代码 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head><title>支付成功通知页面</title></head><body>success</body></html> |
3、回调处理逻辑注意事项
● notify_url的代码处理逻辑不能做登录态校验。
● 商户系统收到支付结果通知,需要在5秒内返回应答报文,否则微信支付认为通知失败,后续会重复发送通知。
● 同样的通知可能会多次发送给商户系统,商户系统必须能够正确处理重复的通知。如果已处理过,直接给微信支付返回成功。
● 商户侧对微信支付回调IP有防火墙策略限制的,需要对以下IP段开通白名单:
上海电信出口网段:101.226.103.0/25
上海联通出口网段:140.207.54.0/25
上海CAP出口网段:121.51.58.128/25
深圳电信出口网段:183.3.234.0/25
深圳联通出口网段:58.251.80.0/25
深圳CAP出口网段:121.51.30.128/25
香港出口网段:203.205.219.128/25
退款结果通知、分账动账通知IP(新增):
175.24.214.208、175.24.211.24、175.24.213.135、109.244.180.23、114.132.203.119、43.139.43.69