商家后台为什么没有收到交易通知?
2013-07-19 00:00
190 查看
原因:
通知页面文件(参数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)中,在商户的业务逻辑处理的程序代码执行之前,一定要先判断该次处理是否已经被做过相同的处理(即,该笔交易在已经付过款后,商户网站里的订单是否已经做过订单更新),如:是否已经为会员充值过一次。没有做过相同的处理,才执行下面的程序。
"如果您依照以上方法还无法解决,可提交集成申请,我们的技术支持会及时与您联系,协助您解决。
申请地址:
https://b.alipay.com/support/helperApply.htm?action=supportHome
"
通知页面文件(参数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)中,在商户的业务逻辑处理的程序代码执行之前,一定要先判断该次处理是否已经被做过相同的处理(即,该笔交易在已经付过款后,商户网站里的订单是否已经做过订单更新),如:是否已经为会员充值过一次。没有做过相同的处理,才执行下面的程序。
"如果您依照以上方法还无法解决,可提交集成申请,我们的技术支持会及时与您联系,协助您解决。
申请地址:
https://b.alipay.com/support/helperApply.htm?action=supportHome
"
相关文章推荐
- 无限上拉下拉XlistView 有时候就会出现 适配器内容已经改变,但列表视图没有收到通知。求解,为什么!内有详细说明。
- 为什么我没有收到 “获取Windows 10” 的通知 - Windows 8.1
- 安卓中适配器的内容已经改变但ListView没有收到通知。确保您的适配器的内容不在后台线程
- jsp中为什么后台传递过来的数据没有空格 而jsp页面上用EL表达式接收就会显示有空格
- iOS如何对本地通知进行处理(当没有打开APP时怎么处理收到的通知)
- OutLook 2010 收件箱子文件夹收到新邮件时没有桌面通知
- 为什么你申请微信支付收到的邮件中没有PaySignKey?
- android系统和ios系统是如何实现推送的,ios为什么没有后台推送
- 安卓应用在后台运行时,通知栏收到应用消息提醒时取消铃声和震动
- Growthpush的push通知为什么当连在wifi的时候就不能收到
- 为什么没有收到一条评论啊
- 收到通知后启动应用或将应用从后台恢复到前台
- 收到通知时启动应用或将程序成后台恢复到前台的做法
- 为什么你申请微信支付收到的邮件中没有PaySignKey?
- linux-centos 为什么crond执行完没有了邮件日子通知?
- 收到推送通知后页面跳转,当程序在后台,无论进入后台之前在哪个界面,点击收到的推送,跳转到指定界面的2个思路:
- 没有收到IBM面试通知
- 苹果开发者客服是没有收到任何通知:关于强制要求2017年1月1号之后 苹果所有应用必须https。
- linux下net-snmp 已经安装,为什么没有 snmpwalk和snmpget
- 作为程序员为什么一直都很努力,却没有进步?