新闻建站cms系统、政府cms系统定制开发

广州网站建设公司-阅速公司

asp.net新闻发布系统、报纸数字报系统方案
/
http://www.ysneo.com/
广州网站建设公司
您当前位置:首页>网站技术

网站技术

支付宝接口如何保证用户支付完成数据库状态同步

发布时间:2014/2/24 11:35:28  作者:Admin  阅读:1148  

广告:阿里云采购优惠专区

用户支付成功页面,该页面有短暂的停留时间,买家看到这个提示信息后有可能会把当前页面关掉,导致页面没有自动跳转回商户网站(return_url)使得商户的业务数据没有被处理(如:订单没有更新)。出现这种情况的原因是:商户网站的支付宝接口并没有利用服务器异步通知页面文件(notify_url)或是该页面在订单执行过程中也出现异常。

解决方法:

解决人员:商户网店开发、维护或管理的程序开发技术人员、商户网店系统提供商

解决步骤:

1、打开return_url页面文件(参数参数return_url对应返回文件),找到已经编写好的业务逻辑处理程序代码段,对其增加防止该笔交易被重复处理判断。

2、打开notify_url页面文件(参数参数notify_url对应返回文件),找到可插入商户的业务逻辑处理程序代码的地方,编写与return_url页面文件中相类似的程序,也需要包含防止该笔交易被重复处理的判断。

如:

'——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

'Response.Write "验证成功<br>"

userid=0

if request.Cookies("member")("userid")<>"" then

userid = request.Cookies("member")("userid")

end if

'根据订单号更新订单,把订单处理成交易成功

conn.execute("update mvc_order set paystate='已付款',trade_no=' " & trade_no & " ' where ordernum='" & out_trade_no & "' ")

修改完成后效果:

当买家关掉自动跳转回商户网站的返回页面(参数return_url对应的return_url返回文件)时,商户的业务处理依旧被notify_url页面文件所执行,因此就不会发生业务没有同步的现象出现(如:订单没有被更新)

注意:

1、注意获取值的方式,notify_url页面文件是POST方式获取(request.form("参数名 ")、$_POST['参数名']),return_url页面文件是GET方式获取(request.querrystring("参数名 ")、$_GET['参数名'])

2、notify_url文件的特性是:

1、 必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;

2、 该页面中获得参数的方式,需要使用POST方式获取,如:

request.Form(“out_order_no”)、$_POST['out_order_no'];

3、 支付宝主动发起通知,该方式才会被启用;

4、 只有在支付宝的交易管理中存在该笔交易,且发生了交易状态的改变,支付宝才会通过该方式发起服务器通知(即时到账中交易状态为“等待买家付款”的状态默认是不会发送通知的);

5、 服务器间的交互,不像页面跳转同步服务器异步通知页面可以在页面上显示出来,这种交互方式是不可见的;

6、 第一次交易状态改变(即时到账中此时交易状态是交易完成)时,不仅页面跳转同步通知页面会启用,而且服务器异步通知页面也会收到支付宝发来的处理结果通知;

7、 程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。

在25小时内完成6~10次通知(通知频率:5s,2m,10m,15m,1h,2h,6h,15h);

8、 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,支付宝会收不到success字符,会被支付宝服务器判定为该页面程序运行出现异常,而重发处理结果通知;

9、 cookies、session等在此页面会失效,即无法获取这些数据;

10、 该方式的调试与运行必须在服务器上,即互联网上能访问;

11、 该方式的作用主要防止订单丢失,即页面跳转同步服务器异步通知页面没有处理订单更新,它则去处理;

12、 通知ID(参数notify_id)只有一分钟有效期,超过一分钟该次通知会验证失败。一旦验证成功下次再验证就会失效。

"如果您依照以上方法还无法解决,可提交集成申请,我们的技术支持会及时与您联系,协助您解决。

申请地址:https://b.alipay.com/support/helperApply.htm?action=supportHome"

广告:阿里云新人采购专场

相关文章
支付宝接口
支付
cms新闻系统购买咨询
扫描关注 广州阅速软件科技有限公司
扫描关注 广州阅速科技