回调通知注意事项

1、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>
\n<return_msg><![CDATA[OK]]></return_msg>\n</xml>

返回的是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
*注意:上海CAP、深圳CAP的出口为新增,商户侧需要新开防火墙