回调通知注意事项
更新时间:2024.07.251. 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. 回调处理逻辑注意事项
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为了确保商户系统的安全,微信支付会在极少数应答或通知回调中生成错误签名,以探测商户系统是否正确地验证了签名。
商户系统不应对探测流量进行特殊处理,而应将其视为正常的应答或通知回调,并对其签名进行验证。在排查问题时,您可以通过查看签名值中的 WECHATPAY/SIGNTEST/ 前缀快速判断是否为探测流量。所有用于探测目的的签名值都会包含此前缀。
在验签失败的情况下,商户系统应返回失败(即应答 4xx 或 5xx 的状态码),等待微信支付携带正确签名重新发送通知回调。
如果你有关于签名探测任何疑问,请通过在线技术咨询联系我们的技术支持。