美文网首页
微信公众号开发网页授权和微信JS-SDK wx.config权限

微信公众号开发网页授权和微信JS-SDK wx.config权限

作者: 一代码农1970 | 来源:发表于2022-04-18 14:30 被阅读0次

    开发微信公众号h5页面,使用微信的东西。需要处理2点。
    1、网页授权拿的code,调用后端同学的接口,把code提交给后端,返回openId,进行业务处理。
    2、使用JS-SDK的方法,必须先wx.config权限验证通过后才能使用SDK方法。

    微信公众号配置问题
    1、公众号设置->功能设置->网页授权域名和JS接口安全域名添加我们的域名,添加校验文件。
    2、接口权限->检查自己使用的功能是否开通或者已开启,比如位置授权和网页授权。
    3、基本配置->公众号开发信息->IP白名单 添加ip白名单这里后端需要注意,不然服务端获取的 access_token 会有问题。

    一、网页授权

    网页授权官网地址
    业务梳理问题
    1、进入页面先判断缓存中是否有用户信息,如果没有用户信息,需要调用微信的网页授权地址。
    2、回调后,从url中获取code参数。通过code调用后端接口,拿到openId,
    3、获取到openId,通过openId,调用后端接口获取用户信息,缓存用户信息。

    /*
    this.appId 是微信公众号的appId  window.location.href 是当前的url地址 用户微信回调打开,传递code。
    1、window.location.replace 替换当前连接,打开微信授权地址https://open.weixin.qq.com/connect/oauth2/authorize
    2、打开微信授权地址后,微信会打开回调我们的连接地址,把code拼接在后边,
    3、回调连接打开后,从url中获取code。
    */
    window.location.replace(
              `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${this.appId}&redirect_uri=${encodeURIComponent(
                `${window.location.href}`
              )}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect`
            )
    

    注意:如果使用vue项目,路由模式如果是hash模式,会存在问题,建议使用history模式。

    二、微信JS-SDK wx.config权限校验

    JS-SDK说明文档

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

    如果微信权限校验出现问题,建议查看 附录5-常见错误及解决方法 根据自己报错的情况检查排查问题。

    注意:安卓config校验成功,ios失败。解决办法,ios记录进入的第一个页面地址,调用wx.config校验时,传第一次进入页面的地址。

    三、本地开发调试问题

    下载微信开发者工具
    因为网页授权域名和JS接口安全域名不支持ip地址,所以我们使用网页授权和SDK校验就会受到限制,有两个处理办法。
    1、申请微信公众平台接口测试帐号
    无需公众帐号、快速申请接口测试号
    直接体验和测试公众平台所有高级接口
    使用测试帐号,网页授权和sdk就不会校验,直接能成功。我们本地开发调试大部分功能。
    开发完成后,后续把测试账号替换成我们的真实的微信公众号信息。
    如果涉及到支付问题,测试账号是无法完成的。这个时候需要真实的微信公众号。换成真实的微信公众号,需要配置网页授权域名和JS接口安全域名,调试可能每次修改代码之后,就需要部署一次。很不方便。
    2、内网穿透
    使用 natapp 实现内网穿透。
    在natapp平台购买隧道,配置隧道,连接到我们本地项目地址,这个时候,我们就可以通过隧道的域名配置微信公众号,配置成功后,我们可以本地开发,通过隧道域名访问我们的本地项目。实现本地调试。
    推荐阅读 使用Natapp本地调试微信公众号H5

    相关文章

      网友评论

          本文标题:微信公众号开发网页授权和微信JS-SDK wx.config权限

          本文链接:https://www.haomeiwen.com/subject/plddertx.html