微信小程序的接入流程梳理

微信小程序的开放平台有两种API调用方式,一种是作为小程序开发者的身份,在前端直接调用微信封装的接口;二是作为服务器开发者,在云端接入微信后台开发者。

前端

在这里插入图片描述
小程序开发的接入文档要看API这一栏,通过手机终端直接调用小程序服务器的接口,基本的流程是:

  1. 微信登录(调用wx.login),产生code临时码,传到服务端。(服务端有用)
  2. 判断是否需要授权,因为部分接口是需要用户同意的比如地理和相机。
  3. 正式调用小程序的其他业务接口。

上述的核心是调用小程序api一定是某个用户的登录态(必须wx.login),这个登录态是有期限的,期限多久是小程序内部的判断逻辑,我们只有通过接口(wx.checkSession)获取。
在这里插入图片描述

服务端

在这里插入图片描述
服务端开发的接入文档要看服务端的一栏,利用云对接小程序服务器,可以调用一些小程序的云服务接口,接入流程是:

  1. 配置小程序后台的基本信息,拿到APPID和Secret等开发信息,配置后台域名供微信小程序开发者与开发者服务器通信,现在要求必须是https,而且要做到备案。
  2. 获取访问令牌access_token(调用auth.getAccessToken接口),有效时长两小时,需要有处理失效再更新的环节。
  3. 利用获取的access_token去调用其他的云开发接口。
  4. 前端传上来的code,换取sessionkey(调用auth.code2Session接口)作为秘钥解签,验证前端传来的客户信息数据是否被篡改。(细节说明)

以上流程只是当需要用到微信后端的开放接口才使用,一般简单的场景只考虑和前端开发写好业务接口即可,上述可以跳过。

细节

在这里插入图片描述

这是官方给出的登录流程,现在说一些细节问题。

  1. 后端拿到的sessionkey有什么用?
    小程序获取code后传到开发者服务器来获取sessionkey,sessionkey和登录用户的openid绑定,确定了某个用户在某段时间内的通信秘钥,这个秘钥不传给小程序前端,而是保留在服务端,作为数据验签的秘钥。重新获取则当前会失效。
    在这里插入图片描述sessionkey验哪个数据的签?小程序调用前端接口获取用户的信息,如果这些数据服务端也需要就得传给服务端。但是为了防止这些信息在传递前被篡改,服务端通过sessionkey这个秘钥解签和参数一一对比,即可验证数据的准确性。官方也给出了具体过程
    在这里插入图片描述

  2. 回过头再解释下各个参数的作用。

    AppID(小程序ID)和秘钥:服务器api使用,换取access_token访问令牌。

    access_token:服务器api使用,访问服务器api的信任凭证,也是必要参数。

    code:前端wx.login接口获取,服务端使用。传到开发者服务器用来获取sessionkey。

    sessionkey:服务器接口获取并使用,用来验签,证明前端传来的数据未被篡改。

  3. 微信配置里有消息推送的配置,这个是牵扯到客服会话之类的,我也暂时没研究。
    在这里插入图片描述
    这个Tokenn和URL填写后是会实时验证的,在点击提交的时候小程序回去调这个接口,拿到返回值和你填的对比是否一致,不一致的话是不会通过的。所以填这个玩意一定要先在URL写好对应接口内容,并返回要使用的token,才会通过。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值