商家后台为什么没有收到交易通知?

【字号: 】【打印】【收藏
原因
通知页面文件(参数notify_url对应的页面文件)由于程序抛出异常、页面文件无法访问等原因致使通知页面中的程序没有执行完毕

检查方法
检查服务器异步通知页面(参数notify_url对应的页面文件)

第一步: 检查notify_url页面文件
A:合作身份者ID和安全校验码是否设置正确,且没有空格,没有填反。
B、notify_url的路径互联网上需要能够访问得到,确保访问到该页面时,页面没有为空白或开发软件自带系统提示错误信息
C、请求参数show_url、return_url、notify_url不要带自定义参数,如:
http://www.xxx.com/alipay/return_url.asp?id=123
?id=123,“?”以后带的参数都是自定义参数
D、检查编码格式是否设置正确
检查乱码的方法,可用写日志函数来记录中文部分的数据是否乱码。如果乱码则确定是编码格式设置不一致,导致乱码。具体请检查编码格式参数input_charset、页面属性编码、网站项目整体编码等,确保传递数据时没有乱码。
E、notify_url页面里,有且只有输出success,且必须保证为空白页面,无任何HTML标签、空格、回车换行等字符。
各开发语言输出success代码:
ASP.NET:Response.Write("success");
ASP:response.write "success"
PHP:echo "success";
JAVA:out.println("success");
F、notify_url页面中不要有seesion或cookies,不要做页面自动跳转

第二步: 检查服务器配置(以下为参考检查方向)
A、服务器是否开启写入权限
B、DNS解析,是否能够解析支付宝IP。
C、防火墙是否有拦截
D、端口443或80是否有开启,且不是假死状态,也没有被占用
E、 服务器的IP地址是否有做过更换,如果有做过更换,则请把notify_url页面文件重命名,参数notify_url的值也一并更新。

第三步: 调试
A、检查程序运行到alipay_notify文件的notify_verify()函数中,在mysign与sign是否相等的判断与responseTxt是否为true(PHP代码:$veryfy_result)的判断这两个判断上是哪个判断验证未通过。
sign与mysign不等的情况有:
安全校验码(参数key)设置有错误、参数格式设置错误与编码乱码(见第一步)
responseTxt不是true的情况有:
合作身份者ID(参数partner)设置有错误、服务器配置(见第二步)、页面跳转返回的地址栏里的链接超过1分钟的有效时间
B、在调试notify_url页面时,必须把接口放置在服务器里做调试
C、检查程序运行到商户网站自己编写的业务逻辑处理程序代码段时,断点调试或使用写日志函数(函数名:log_result)逐行检查代码,监控各个参数变量

注意:
商户网站中对这笔交易做了多次处理(如付了一次钱,却反复充值多次)这类情况,按照解决方法修正了商户网站的程序或服务器后,请务必在页面跳转同步通知页面文件(return_url)与服务器异步通知页面文件(notify_url)中,在商户的业务逻辑处理的程序代码执行之前,一定要先判断该次处理是否已经被做过相同的处理(即,该笔交易在已经付过款后,商户网站里的订单是否已经做过订单更新),如:是否已经为会员充值过一次。没有做过相同的处理,才执行下面的程序。

"如果您依照以上方法还无法解决,可以联系在线技术客服协助您解决问题"