线下移动支付提单流程问题

mako 发布于 2016/06/15 11:31
阅读 231
收藏 0

现在手里在做一个ERP系统,门店收银台在使用微信、支付宝的条码支付和扫码支付的系统流程不好控制,请高手给点指点。

两种思路:

1、先提交系统订单信息,支付状态为未支付,然后扫顾客码或顾客扫码,再发起查询微信支付状态,之后回来系统变更订单支付状态。
问题:这个流程唯一的问题是,如果收银员手动关闭了监听窗口或跳转了页面,那么支付状态就必须手动查询,在订单量大的时候,自动查询将拖慢系统。并且收银员流动性比较大,重复培训比较困难。

2、提交订单前扫顾客码或顾客扫码,系统查询微信是否支付成功,如果支付成功则提交订单信息并标记支付状态为成功。
问题:这个流程存在的问题是顾客虽然已支付成功,但因为程序执行超时或其他不确定因素导致支付状态延时获取,那么就会导致虽然顾客已成功支付,但系统并没有收到返回的成功信息,导致订单记录没有写入,也就没有办法发起退款或其他事项。并且可能由于第三方支付接口不稳定也会导致出现同样的问题。


请做过类似流程的兄弟给点思路或资料,主要是处理流程问题,怎么样可以做到更好的容错,并且降低反复培训的难度。

以下是问题补充:

@mako:例如超市的收银POS机,应该是使用第二种流程吧? (2016/06/15 12:01)
加载中
0
leo108
leo108

支付成功都有回调啊,不需要主动查询

leo108
leo108
回复 @mako : 比如什么问题?回调是由支付平台发起的,只要支付成功必然会有回调,除非1.支付平台本身有问题 2.支付平台到你们服务器的网络链路有问题。这两个都是小概率事件
mako
mako
涉及到很多收银员使用,靠回掉还是会有很多不确定因素导致很多问题
0
Dreyer
Dreyer
和我们公司做的东西一样,我们的做法是ERP那边扫描顾客的支付码,然后向我们的支付网关系统发起支付:创建支付订单和交易流水(已创建状态),然后向微信/支付宝发起支付请求,然后解析微信/支付宝返回的结果,如果微信/支付宝返回的支付状态为支付成功或者失败,那就把支付结果返回给ERP,如果微信/支付宝返回的状态为“支付中”,那支付网关系统会把这笔订单加入到消息队列进行轮询,轮询做的就是调用微信/支付宝的订单查询接口,获取订单的最终状态,然后更新我们系统的订单/流水状态。ERP那边呢,调用网关的支付接口后,如果3秒之内没有收到来自网关的响应,那他会调用网关的订单查询接口,获取订单的状态。大致就是酱紫
0
有偿技术服务
有偿技术服务
qq:2540318046,有好的方式
返回顶部
顶部