微信小程序的支付流程及详解:标记的流程

2024-05-09
来源:网络整理

微信小程序支付流程

话不多说,我们简单回顾一下微信小程序的支付流程:

以上是付款流程图。 我们按照上图来解释一下:

下图是打标流程:

详细解释

1、小程序调用登录接口获取code,传递给商户服务器获取用户的

我们知道,在微信平台上,同一个公众号是不同的。 它是用于识别用户的id。 换句话说,我们用它来区分不同的用户。 有过微信开发背景的人应该对此很熟悉。 为了知道谁在付费,我们首先需要获取当前用户,那么我们应该如何获取呢? 看下面的图片:

小程序调用wx.()获取临时登录凭证代码并发回开发者服务器。

开发者服务器将代码交换为用户的唯一标识和会话密钥。

看不懂吗? 别急,让我慢慢解释。 业务流程大致是,首先要在小程序的代码中调用wx.()来获取微信的code。 拿到后,将代码传给商户服务器,然后商户服务器使用sao操作与微信服务器讲和。

伪代码如下(小程序):

getToken: function () { //调用登录接口 wx.login({ success: function (res) { var code = res.code; wx.request({ url: 商户服务器接口地址, data: { code: code }, method: 'POST', success: function (res) { wx.setStorageSync('token', res.data.token); //存在小程序缓存中 }, fail: function (res) { console.log(res.data); } }) } }) }

通过调用这几行代码,您可以向微信服务器请求代码并将代码传递给商户服务器。 请记住,最好使用 post 发送请求。 我不需要谈论安全性,因为它可以防止其他人滥用该接口。 所以我们用它来验证。 并将商户服务器返回的结果存储在小程序缓存中。

那么服务器应该做什么呢?

我们将通过小程序提交的代码与以下URL连接起来,并使用curl进行get请求。

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

返回的数据是一个json对象,我们使用(JSON, true)将其解析为数组。 数据包括用户的 和 。 获取到之后,我们应该将其存储到数据库中。 它代表了用户的身份,那么应该是什么? 生成它。

2. 生成和缓存

我们根据一张用户表连接id和,对应的id就是用户的uid。 我们可以这样封装它

//要缓存的数据数组 $cacheValue = $result; //包含openID和session_key $cacheValue['uid'] =$uid; //用户id $cacheValue['scope'] =ScopeEnum::User; //用户权限级别

我们可以选择缓存方式、文件缓存等,并使用键值对(key-)进行存储。 记得设置过期时间。 这里的key是用来赋值的,可以这样生成:

//获取32位随机字符串 $str = getRandChar(32

分享