2017/4/20
Moufy

前端调用php的分享接口出现二次分享签名错误问题解决办法:

今天在和前端h5开发调试微信分享接口的时候,出现了一个很奇怪很恶心的问题,就是首次分享可以成功,点击分享出去的链接进行二次分享就一直报签名错误问题。
你会发现根据官方文档,即使你知道动态获取url,即使你知道分享后会被加参数,即使你知道去掉#hash值,即使你乖乖加密了,却依然报错报错!
查了很久都没有得到解决办法,后来将问题初步定在前端传过来的和php后台去签名的url不一致上面,于是打印出前端传给我的url和我接收到的url做比较,还好我眼尖发现了问题,url果然不一样,原因就是url里面的&符号被转义了!!!可恨。不过到此豁然开朗,只要解决这个转义问题就可以了。
说明:前端都传给我的url是js动态获取然后去掉#hash后面的内容,没有encode。

下面看下代码:

1,点击二次分享连接进去,
a)前端传给我的url如下:
http://xxx.com.cn/html/?from=singlemessage&isappinstalled=0
b)Php接收到的url如下:
http://xxx.com.cn/html/?from=singlemessage&isappinstalled=0

ps:看到哪里不一样了吗?(捂脸)
2,想办法将这个去掉就可以了!(这里可以有很多方法,看自己喜欢!!)
a)我这里用的是直接去掉: