帝国cms支付系统的漏单风险
场景
用户使用电脑浏览器浏览网站时,下单后跳转到第三方支付网站(如支付宝)进行支付,当支付完成后,第三方支付系统一般需要跳转回PC网站(回调页面)。官方支付插件,在跳转回的页面会对订单的支付状态进行处理。
但是,如果用户支付完成后,不等跳转回PC网站,就关闭浏览器页面,那么,PC网站就没有机会对订单的支付状态进行更新。当用户通过其他页面查询订单时,会发现,订单仍处于“未支付”的状态。
这就产生了“漏单”现象。
解决办法
有编程能力的,可以对官方支付接口进行改造
改造的基本原理是,增加一个回调页面,接收第三方支付的“异步通知”。一旦接收到异步通知,就对订单进行处理。这里需要注意:
- 由于是接收异步通知,没有cookie的信息,需要在创建支付订单时做好与第三方支付的数据交互,尤其是自定义的数据(如phome)
- 验证通知的来源,防止有人“冒名顶替”、冒充第三方支付发送通知、造成损失。
没有能力的,可以使用“第四方”的支付插件进行替换
可以考虑如下插件:
支付宝支付
下载页面。