小程序登录和支付流程

郭浪 Lv3

小程序中的登录和页面的登录是有所不同的,账号的验证这一块是要由微信服务器来进行的

登录逻辑:

  1. 调用 wx.login() 获取 临时登录凭证 code,有效期为 5分钟;(临时登录凭证 code 只能使用一次)
  2. 将临时 code 传到我们的后端,后端调用 auth.code2Session 接口,换取用户唯一标识 OpenID 和 会话密钥 session_key;( openid 是用户唯一标识,session_key 能保证当前用户进行会话操作的有效性)注意:获取 session_key 出于安全性的考虑,要在后端调用。如果我们在前端通过 request 调用此接口,就不可避免的需要将我们小程序的appid 、secret 和服务端下发的 session_key 暴露在外部,会给我们的业务安全带来极大的风险。 session_key 拥有一定的时效性。用户越久未使用小程序,用户登录态越有可能失效。反之如果用户一直在使用小程序,则用户登录态一直保持有效。具体时效逻辑由微信维护,对开发者透明。开发者需要调用 wx.checkSession 接口检测当前用户登录态是否有效
  3. 后端自定义新的密钥并关联返回的 session_key 和 openid,将新的密钥返给前端,前端将其存储在 storage 中。(会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥,所以要定义新的密钥)。 之所以存在storage中,是因为小程序没有 cookie,相应的后端 set-cookie 在小程序中不起作用
  4. 前端发送请求的时候,带着密钥,后端根据密钥识别用户身份,返回数据

支付逻辑:

  1. 调用后端接口创建订单: 把商品的数量信息价格返回给后端 后端会返回订单编号
  2. 根据订单编号向后端请求 订单支付方法需要的各种属性
  3. 调用wx.requestPayment() 参数是后端传回来的属性 参数中还可以设置成功和结束的回调函数
  4. 调用后端查询支付结果的接口,根据响应的结果做处理,例如成功,跳转到支付结果页
  • 标题: 小程序登录和支付流程
  • 作者: 郭浪
  • 创建于 : 2024-05-18 22:45:38
  • 更新于 : 2024-05-18 22:45:38
  • 链接: https://guolang.top/2024/05/18/小程序登录和支付流程/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
小程序登录和支付流程