支付宝无法异步通知及异步通知常见问题注意事项
支付宝异步通知参数(notify_url)路径常见问题注意事项:
1、不能是内网或者局域网地址,必须是外网可以访问的。否则无法调用!!
2、地址不能有session拦截,支付宝主动发送,所有session会失效;cookies、session等在此页面会失效!!
3、必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;
4、程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。
在25小时内完成6~10次通知(通知频率:5s,2m,10m,15m,1h,2h,6h,15h);
5、 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,支付宝会收不到success字符,会被支付宝服务器判定为该页面程序运行出现异常,而重发处理结果通知;
其它:
1、打开return_url页面文件(参数参数return_url对应返回文件),找到已经编写好的业务逻辑处理程序代码段,对其增加防止该笔交易被重复处理判断。
2、打开notify_url页面文件(参数参数notify_url对应返回文件),找到可插入商户的业务逻辑处理程序代码的地方,编写与return_url页面文件中相类似的程序,也需要包含防止该笔交易被重复处理的判断。
修改完成后效果:
当买家关掉自动跳转回商户网站的返回页面(参数return_url对应的return_url返回文件)时,商户的业务处理依旧被notify_url页面文件所执行,因此就不会发生业务没有同步的现象出现(如:订单没有被更新)