消费者手动关闭了返回页面,交易订单如何更新?
原因:
买家支付完成后,当前界面会停留在智付的交易付款成功的提示界面上。
支付成功页面有短暂的停留时间,买家看到这个提示信息后有可能会把当前页面关掉,导致页面没有自动跳转回商户网站(return_url)使得商户的业务数据没有被处理(如:订单没有更新)。出现这种情况的原因是:商户网站的智付接口并没有利用服务器异步通知页面文件(notify_url)或是该页面在订单执行过程中也出现异常。
解决方法:
解决人员:商户网店开发、维护或管理的程序开发技术人员、商户网店系统提供商
解决步骤:
1、打开return_url页面文件(参数参数return_url对应返回文件),找到已经编写好的业务逻辑处理程序代码段,对其增加防止该笔交易被重复处理判断。
2、打开notify_url页面文件(参数参数notify_url对应返回文件),找到可插入商户的业务逻辑处理程序代码的地方,编写与return_url页面文件中相类似的程序,也需要包含防止该笔交易被重复处理的判断。
修改完成后效果:
当买家关掉自动跳转回商户网站的返回页面(参数return_url对应的return_url返回文件)时,商户的业务处理依旧被notify_url页面文件所执行,因此就不会发生业务没有同步的现象出现(如:订单没有被更新)
注意:
1、必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;
2、该页面中获得参数的方式,需要使用POST方式获取,如:
request.Form(“order_no”)、$_POST['order_no'];
3、智付主动发起通知,该方式才会被启用;
4、只有在智付的交易管理中存在该笔交易,且为支付成功,智付才会通过该方式发起服务器通知;
5、服务器间的交互,不像页面跳转同步服务器异步通知页面可以在页面上显示出来,这种交互方式是不可见的;
6、第一次交易状态改变时,不仅页面跳转同步通知页面会启用,而且服务器异步通知页面也会收到智付发来的处理结果通知;
7、程序执行完后必须打印输出“SUCCESS”(不包含引号)。如果商户反馈给智付的字符不是SUCCESS这7个字符,智付服务器会不断重发通知,直到发完5次为止。(通知频率:5m,10m,20m,30m);
8、程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,智付会收不到SUCCESS字符,会被智付服务器判定为该页面程序运行出现异常,而重发处理结果通知;
9、该方式的调试与运行必须在服务器上,即互联网上能访问;
10、该方式的作用主要防止订单丢失,即页面跳转同步服务器异步通知页面没有处理订单更新,它则去处理;