用户打开浏览器,先从 sessionStorage 读取订单号,如果本地没有则生成订单号,sessionStorage 保存一份,post 订单号和支付类型给后端
后端收到请求后,生成待付费用(整数 + 随机小数),将订单号,支付类型,待付费用,时间戳,写入订单表(id 订单号 待付费用 时间戳),将待支付费用返回前端;
前端收到响应后,渲染二维码,待付费用,订单号,开始倒计时,等待用户支付
用户支付后,收款方手机收到通知,收款方手机安装回调客户端,后台读取通知栏信息,post 给后端
后端根据 post 数据判断出是来自哪个订单的(查询订单表 2 分钟内,待付金额和已支付金额相同的订单),将订单和支付信息插入支付成功表
前端 post 订单号轮询后端查询支付成功表确认是否支付成功
后端开一个任务定期清理一次 4 分钟以前的待支付订单记录
如果不用数据库存储临时订单信息,就需要在内存创建一个数据结构,订单号费用时间戳都存储在其中,对于前端轮询订单是否成功也是在这个数据结构中操作
注意:把 APP 常驻后台运行,不被后台关闭就可以了,微信,支付宝也要登录而且要开启收款到账语音提示,常驻后台运行。
apk 的原理是获取通知栏的收款通知信息,然后把这些信息传到数据库
应用场景-论坛注册码
前端
支付前
支付后
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于