当买家通过支付宝接口支付完成后,发现商户网站的订单系统中自己的订单没有同步被处理或是商户网站中对这笔交易做了多次处理(如付了一次钱,却反复充值多次)。出现这些情况的原因可能有:商户网站中订单更新的页面文件执行有问题、商户网站所在服务器的配置上出现问题。


原因:


1、商户网站中订单更新的页面文件执行有问题


2、商户网站所在服务器的配置上出现问题



检查方法:



情况一:商户的网站是购买的网店系统(商户没有网站开发程序人员)


1、检查商户网站中的支付宝插件是否安装正常


步骤一:备份商户的网站文件


步骤二:卸载或删除支付宝插件


步骤三:重新安装支付宝插件或到网店系统的官方论坛下载最新补丁/插件


2、检查商户网站所在服务器的配置是否正确


找到网络管理员或网站所在服务器的提供商协助检查,


具体检查方法见:responseTxt不是true的情况




情况二:商户的网站是自行开发的网店系统(商户有网站开发程序人员)



检查服务器异步通知页面(参数notify_url对应的页面文件)与同步跳转返回页面参数return_url对应的页面文件)



第一步: 检查return_url、notify_url页面文件


A:合作身份者ID和安全校验码是否设置正确,且没有空格,没有填反。


B、return_url、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、因为返回的return_url有效时间是1分钟,超过1分钟,这个URL链接就会失效,responseTxt会为false,所以需要检查该链接是否已经失效

F、notify_url页面里,有且只有输出success,且必须保证为空白页面,无任何HTML标签、空格、回车换行等字符。

各开发语言输出success代码:

ASP.NET:Response.Write("success");

ASP:response.write "success"

PHP:echo "success";

JAVA:out.println("success");

G、notify_url页面中不要有seesion或cookies,不要做页面自动跳转


第二步: 检查服务器配置(以下为参考检查方向)

A、服务器是否开启写入权限

B、DNS解析,是否能够解析支付宝IP。

C、防火墙是否有拦截

D、端口443或80是否有开启,且不是假死状态,也没有被占用

E、 服务器的IP地址是否有做过更换,如果有做过更换,则请把notify_url页面文件重命名,参数notify_url的值也一并更新。


第三步: 调试

A、检查程序运行到alipay_notify文件的return_verify()、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 "