美文网首页
微信公众平台分享-踩坑记

微信公众平台分享-踩坑记

作者: 清风徐云去 | 来源:发表于2018-04-04 11:55 被阅读0次
1.png

虽然微信公众号平台出来那么久了,但是被程序猿们吐槽的声音却一直没有减少过,作为趟坑大军中的一员,在这里记一下自己遇到过的问题吧。

按照惯例,传送门微信公众平台

1.通过config接口注入权限验证配置
2.png

虽然前面写了通过前端来获取并生成相关数据,但是一般情况下,这些数据是后端来实现,前端通过请求获取相关数据赋值进行验证的。
在这个步骤里,最常见的错误是config:invalid signature,原因是签名算法中的url与wx校验时的url不一致。静态页面在前端通过ajax将url传到后台签名,前端需要用js获取当前页面除去'#'hash部分的链接(可用location.href.split('#')[0]获取,而且需要encodeURIComponent,后台decodeURIComponent解码),因为页面一旦分享,微信客户端会在你的链接末尾加入其它参数,如果不是动态获取当前链接,将导致分享后的页面签名失败。

2.通过ready接口处理成功验证
3.png

这个其实也算不上坑,只是自己在刚刚接触的时候,不是很理解,导致在使用的时候没有使用ready,导致接口调用不成功。

3.分享接口
4.png
当config验证通过,checkJsApi检查的接口OK的,接口也是写在ready方法里了,但是在设置分享的时候老是失败时,这个时候要检查接口里的link,imgUrl的路径了。按照官方的说明,link分享的链接必须与当前页面对应的公众号JS安全域名一致,说白了,就是在同一个域名下,imgUrl也是一样,否则导致分享不成功。
4.Reference error wx is not defined错误
5.png

遇到这个问题的时候,百度给出的很多答案都是jweixin-1.0.0.js与其它某js冲突,给出的解决办法有两个,一个是重置definerequire

<script type="text/javascript">
    define = null;
    require = null;
</script>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" type="text/javascript">
</script>

一个是把引入的jweixin.js文件提前。
在处理的时候发现,方法一对自己的项目无效,方法二有效,但是还是会出现Reference error wx is not defined这个错误。
排查的时候发现,其实不是冲入的问题,而是jweixin.js文件引入加载时间太长,导致下面的script标签里调用wx.config的时候没有找到这个方法,从而报错。

6.png
7.png
5.签名算法
8.png

这里要讲的其实不是自己的坑,而是自己背的锅。后端同事在写签名算法的时候,没有按照官方给出的关键词拼接,

noncestr=Wm3WZYTPz0wzccnW
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
timestamp=1414587457
url=http://mp.weixin.qq.com?params=value

这里面的noncestr,jsapi_ticket,timestamp,url一个都不能改

导致自己请求的数据一直验证不通过,以为是自己的问题,当晚加班了几个小时解决这个问题,从头到尾排查几遍,查了半天,看了一下后端同事的算法代码,瞬间哭晕了=-=~~~,把timestamp写成了times,改回来后,验证就通过了。

6.iOS系统及微信中不支持audio自动播放问题
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> 
<script> 
     //一般情况下,这样就可以自动播放了,但是一些奇葩iPhone机不可以 
     document.getElementById('idName').play(); 
    //微信必须加入Weixin JSAPI的WeixinJSBridgeReady才能生效 
    document.addEventListener("WeixinJSBridgeReady", function () { 
        document.getElementById('idName').play(); 
        document.getElementById('video').play(); //视频自动播放
    }, false); 
</script>

暂时就这些吧,后期遇到其它的继续补充。

----------END----------

相关文章

  • 微信公众平台分享-踩坑记

    虽然微信公众号平台出来那么久了,但是被程序猿们吐槽的声音却一直没有减少过,作为趟坑大军中的一员,在这里记一下自己遇...

  • java开发微信公众平台 从入门到踩坑

    title: java开发微信公众平台 从入门到踩坑date: 2016-03-22 03:50:12tags: ...

  • 微信分享

    微信公众平台绑定域名 遇到的坑 遇到的问题,微信API的附录里面都有。 这里的坑: 虽然调用了微信分享,但是并不意...

  • 2021-05-12

    微信分享跳转2次,微信分享跳转微信正在连接,分享微信没反应 这几天搞微信分享,还是有一些坑在里面的,记录踩过的坑;...

  • 微信公众号踩坑

    1:服务端返回一个url需要前端重定向到这个url,IOS上可以重定向,安卓不行

  • 微信公众号开发-验证微信服务器,授权登录以及Token管理

    本文基于之前几个项目在部署在微信公众号下的网页应用,以此写下微信公众号开发的步骤以及踩过的坑 申请测试公众号 首先...

  • 微信网页分享JS-SDK使用步骤

    ps: 公众号必须开通微信认证,否则无法自定义分享 1.公众平台 绑定域名 登录微信公众平台,进入“公众号设置”-...

  • 做微信登录前必须先了解的事情

    1. 微信公众平台与微信开放平台 微信登录分为微信开放平台和微信公众平台微信公众平台:指使用微信内置浏览器登录网站...

  • 在前端艰难爬行之H5网页支持微信分享

    微信真坑,鼓捣了一天,眼睛都瞎了,最后发现个人微信公众账号没有权限,尼玛。。。 1. 注册微信公众平台 为了能够使...

  • ios 微信支付集成

    1. 准备 微信平台分为微信公众平台和微信开放平台,公众平台是运营微信公众号的管理系统,开放平台主要针对app、网...

网友评论

      本文标题:微信公众平台分享-踩坑记

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