6

在微信公众平台开发过程中,主要涉及到两大方面问题,一个是网页授权,一个是JS SDK使用。因为最近遇到各种坑,故抽空通读了微信提供的公众平台开发者文档,并在此做下总结。

网页授权

1.用户同意授权,获取code(前端调用):

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect  

用户点击“确认登录”(即同意授权),跳到回调地址redirect_uri,并回传code:

redirect_uri/?code=CODE&state=STATE(这一步就跳到我们自己的后端服务工程了)

code有5分钟时效;redirect_uri需要登录到公众平台配置。

2.通过code换取网页access_token(后端调用):

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code  

微信返回access_token(授权接口调用凭证)和openid(用户唯一标识,无论是否关注公众号都有)
其中appid、secret都是公众号分配的,可登录到公众平台查看;access_token有2个小时时效。

3.拉取用户信息(后端调用):

https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

微信JS SDK

1.绑定安全域名:即允许调用JS SDK开发工具的域名,一般为前端页面域名,需要登录到公众平台配置。

2.引入jweixin.js文件

3.验证签名:

    wx.config({  
        debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
        appId: '', // 必填,公众号的唯一标识 
        timestamp: , // 必填,生成签名的时间戳 
        nonceStr: '', // 必填,生成签名的随机串 
        signature: '',// 必填,签名,见附录1
        jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
    });

4.通过ready接口处理验签成功回调:


    wx.ready(function(){
      //异步
    });

5.通过error接口处理验签失败回调:

    wx.error(function(res){
      //异步
    });

哈,本文只是做下总结,具体还是要参考微信官方说明文档

下面总结遇到的一些报错,并分析其原因:
1.报“微信签名失败”:有可能是安全域名配置有误;
2.报“未关注该测试号”:测试号有关注人数限制,有可能是已经达到上限了。


燕子酱
590 声望13 粉丝

除了睡懒觉,没事多写写码,指不定哪天就成大神啦~


引用和评论

0 条评论