微信扫码支付实现过程及相关要点详细解析

2024-06-28
来源:网络整理

开始之前我想说几句,这也是我个人的记录,整体的微信二维码支付已经实现了,但是还有很多细节和需要完善的地方,为了简单明了,我只给大家串一下整体的流程,大家看到的话还请多多指教,有不懂的也可以私信我,如果想了解更多微信登录的知识,小栏目里也有微信相关的文章,大家可以看看

使用微信支付需要有微信商户平台:。申请公众号(服务号)认证费用300即可开通微信支付。微信支付需要公众号ID和密钥,以及商户ID和密钥。如果没有在线申请,可以了解一下整体流程。当然,如果有朋友或者公司有就更好了。

先把用过的一些链接地址放在这里方便大家使用

微信支付申请流程:

常见付款方式文件:

案例演示:

扫码支付单据:

微信支付顺序图:

统一订购文件:

签名算法说明:

签名验证工具:

内网穿透:

在看代码之前,我需要先跟大家解释一下一些必要的知识,不然直接来看代码还是会一头雾水,功能完成了却看不懂流程,太浪费时间了。

:微信网站扫码支付简介.1:名词理解

:唯一公众号注明

:公众号密钥

:商户编号,申请微信支付时分配

key:支付交易时生成签名的密钥。设置路径:微信商户平台()–>账户中心–>账户设置–>API安全–>密钥设置

.2:微信支付交互方法.3:时序图讲解(重点!)

上面有微信官方的时序图的链接,这个图你一定要看懂,因为下面的代码会告诉你它是序列中的哪一步,看图就很容易看懂代码了。

简单的说,序列图就是一个操作的流程,这个流程中会经过哪个对象的方法,返回什么操作等等。

顺序时序图:是一个交互流程图(把大象放进冰箱一共有多少个步骤)

对象()、生命线()、激活()、消息()

对象:序列图中对象在交互中所扮演的角色是对象。对象名称用矩形框起来,名称带有下划线。

生命线:生命线是一条垂直的虚线,表示对象的存在。在序列图中,每个对象都有一条生命线。

激活:表示时序图中对象执行操作的时间段,表明该对象被占用以完成某项任务。当对象处于激活期时,生命线可以加宽为矩形。

消息:对象之间的交互是通过相互发送消息来实现的。消息名称标记在箭头上。一个对象可以请求(要求)另一个对象做某事。消息从源对象指向目标对象。一旦消息被发送,控制权就从源对象转移到目标对象。消息的阅读顺序严格从上到下。

消息交互中的实线:请求消息

消息交互中虚线:响应返回消息

调用你自己的方法:反射消息

让我用自己的话告诉你:

1.用户下单,进入购买页面,点击购买进入后台

2.后端收到请求,生成订单。你肯定在淘宝上买过东西吧?买了东西,发现钱不够。订单会在那里停留一段时间等待你付款,但是订单已经在数据库中提交了。你付款后订单状态就会改变。

3.使用微信后台统一下单,不仅后台生成订单,微信还会生成预订单号

4.微信返回支付交易链接,并根据此值生成二维码图片

5.将二维码返回给前端用户,前端用户扫描并付款。这是与微信的直接交互。

6、微信支付系统验证有效性,并返回消息给用户确认支付。

7.用户确认并输入密码。返回微信支付系统进行授权

8. 验证授权并完成付款交易

9.返回支付结果,并发送短信和微信提醒。这个是并行处理,一个通知用户,一个通知后端

10.异步通知后端支付结果,会携带一些参数,订单号等,收到结果后,告知收款状态

11、如果后台挂了,微信会定时发送通知,后台可以做定时任务,如果用户已经支付,但是订单状态没有修改,会定时调用微信的接口,检查API是否操作成功。

以下流程根据业务情况而定

:统一秩序

商户系统首先调用此接口在微信支付服务后台生成预支付交易订单,然后返回正确的预支付交易标识,再根据扫码、APP等不同场景生成交易字符串调用支付,下面是时序图第二步

热门链接文档:

这是统一的订单流程图

1. 告诉微信支付你想下订单

2、微信支付系统数据库生成订单,但是没有支付,你后台也生成了未支付的订单。

3.用户付款后,微信支付将订单更新为已付款

4.微信调用后台告诉我们支付已完成

5.后端返回确认信息等。

时序图和统一订货流程基本就到这里了,大家一定要看懂,一定要清楚!

.1:统一订单请求

分享