首页 >后端开发 >php教程 >javascript - 微信JS-SDK使用权限签名算法的疑问

javascript - 微信JS-SDK使用权限签名算法的疑问

WBOY
WBOY原创
2016-06-06 20:09:271578浏览

被签名的字符串为:

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

</code>

其中url的内容多了“/”,如:
url=http://mp.weixin.qq.com?params=value(无“/”)
url=http://mp.weixin.qq.com/?params=value(有“/”)
就会导致“invalid url domain”错误,为什么?

回复内容:

被签名的字符串为:

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

</code>

其中url的内容多了“/”,如:
url=http://mp.weixin.qq.com?params=value(无“/”)
url=http://mp.weixin.qq.com/?params=value(有“/”)
就会导致“invalid url domain”错误,为什么?

有人遇到这个问题没?

'/'会导致你传的url中的参数不完整,sdk接收到的url和你实际的url不匹配,当然就会invalid domain了。

这个和你前端把url提交到接口上的方法有关系,简单的说就是url encode一下就可以避免了。有的库比如jQuery或者Zepto可能把encode这一步在ajax中封装了,如果你写的是原生的ajax,可能就漏掉了encode,导致参数传递不完整。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn