微信分享-微信认证授权详细代码示例

微信认证授权详细代码示例

背景

开发前必须知道的东西

操作步骤

1 HttpUtil工具类的编写

这个工具类的作用就是获取签名,可分为四步:

  1. 根据appId和appsecret获取access_token;
  2. 使用access_token获取jsapi_ticket;
  3. 使用时间戳,随机数,jsapi_ticket和要访问的url按照签名算法拼接字符串;
  4. 对第三步的字符串进行SHA1加密,得到签名;

注意: check_signature方法中的clearLove是我的token,记得换成你们自己的

注意: ***access_token***有每天2000次的获取上限,并且有效时间长达两小时,所以建议缓存 access_token***和***access_ticket

注意:

  1. 我一开始尝试的下图的方法,不行之后才换的上述方法,你们也可以试试这个:
  2. 如果方法写好了,并且确定可以正确的返回echostr.那就关闭断点再提交,否则会因为响应超时配置失败.

3 页面相关代码

  1. 在需要调用js接口的页面接入,这个文件就是这个样子的,你们复制一下就好了
  2. 通过config接口注入权限并验证配置,这一步也需要用到我们前面写好的HttpUtil.

下面是比较完整的前端代码,你们可以拿去改一下:

下面是后台controller中的获取配置信息的方法:

注意:

    如果==getConfig()=接收到url,可以把请求方式改成get试试.
  1. 通过ready接口处理成功验证
wx.ready(function(){

    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
  1. 通过error接口处理失败验证
wx.error(function(res){

    // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。

});

小结

搞之前觉得这个东西应该挺简单的,但是中间还是踩了很多坑,所以写了这文章总结一下,写完这篇文章的发现确实挺简单的,简单到代码放上来我都不知道该说啥了.

参考博客

经验分享 程序员 微信小程序 职场和发展