2 min read

微信分享开发中出现的问题

这里就只说说会让人混淆的地方

绑定域名

绑定位置:登录【微信公众平台】-> 【公众号设置】-> 【功能设置】,可看到JS安全域名编辑选项。

假设服务放在【h5.mimeay.cc】,则相应绑定的安全域名为【h5.mimeay.cc】

以前是可以绑定端口的,但是现在微信取消了有端口的绑定。

关于jsapi_ticket 以及其依赖的access_token

获取access_token

jsapi_ticket是公众号用于调用微信JS接口的临时票据,也要做一下缓存,要注意的地方:

  • 签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。【也就是后端生成noncestr,timestamp,签名后,也要把这两个字段的值渲染到页面】
  • 签名用的url必须是调用JS接口页面的完整URL【如果访问的是http://h5.mimeay.cc/test,则前面的url也应该为http://h5.mimeay.cc/test】

调试过程中可能会出现的提示

  • invalid url domain : 一般就是你访问的域名对不上js安全域名

  • invalid signature : 除了nonceStr,timestamp, url这一块地方是蛮容易出错的,切记url是动态的,用户访问的地址,就是你前面的地址,一点差别都不能有

  • 遇到的第三个问题,就是前面两个都解决了,但是分享的时候,却没有按照我既定的分享文案和地址去分享。因为我需要页面一加载就调用 jsapi,因为 微信 那边肯定要先跑一趟 wx.config 验证,所以我还没验证完就 绑定 wx.share*** 的话会导致失败 , 所以要在分享的代码外层加 wx.ready

wx.ready(()=>{
    // 分享
   wx.onMenuShareTimeline({
    title: '', // 分享标题
    link: '', // 分享链接
    imgUrl: '', // 分享图标
    success: function () { 
        // 用户确认分享后执行的回调函数
    },
    cancel: function () { 
        // 用户取消分享后执行的回调函数
    }
  });
   //其他分享代码
});