个人支付宝微信支付回调实现原理

本贴最后更新于 616 天前,其中的信息可能已经东海扬尘

原理图.png

用户打开浏览器,先从 sessionStorage 读取订单号,如果本地没有则生成订单号,sessionStorage 保存一份,post 订单号和支付类型给后端
后端收到请求后,生成待付费用(整数 + 随机小数),将订单号,支付类型,待付费用,时间戳,写入订单表(id 订单号 待付费用 时间戳),将待支付费用返回前端;
前端收到响应后,渲染二维码,待付费用,订单号,开始倒计时,等待用户支付
用户支付后,收款方手机收到通知,收款方手机安装回调客户端,后台读取通知栏信息,post 给后端
后端根据 post 数据判断出是来自哪个订单的(查询订单表 2 分钟内,待付金额和已支付金额相同的订单),将订单和支付信息插入支付成功表
前端 post 订单号轮询后端查询支付成功表确认是否支付成功
后端开一个任务定期清理一次 4 分钟以前的待支付订单记录

如果不用数据库存储临时订单信息,就需要在内存创建一个数据结构,订单号费用时间戳都存储在其中,对于前端轮询订单是否成功也是在这个数据结构中操作

注意:把 APP 常驻后台运行,不被后台关闭就可以了,微信,支付宝也要登录而且要开启收款到账语音提示,常驻后台运行。
apk 的原理是获取通知栏的收款通知信息,然后把这些信息传到数据库

应用场景-论坛注册码

注册 - Powered by HYBBS

1603184664347.jpg

前端

支付前
1.jpg

支付后
1603184493723.jpg

手机 apk 客户端

1603184306790.jpg

  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    250 引用 • 665 回帖 • 329 关注
  • Flask
    17 引用 • 7 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...