微信二次分享报错invalid signature问题及解决方法

微信二次分享报错invalid signature问题及解决方法

基于微信微信官方账号开发的h5页面(使用jssdk接口)被用户A分享给用户B,当用户B再次分享该页面时,已经无法成功分享。本文主要介绍微信二次分享举报签名无效的问题及解决方法。有需要的朋友可以参考一下。

基于微信微信官方账号开发的h5页面(使用jssdk接口)被用户A分享给用户B,当用户B再次分享该页面时,已经无法成功分享。问题是用户B收到的分享链接和用户a打开的链接不一样。

用户a的链接是

http://test.com/test.html

b .用户收到的连接

http://test.com/test.htmlfrom=singlemessage

From=singlemessage是微信客户端为了区分分享来源,重新链接后自动添加的标记。再次分享时,需要用encodeURIComponent处理js代码中自动获取的连接,再用urldecode处理后台收到的url。

js和php的示例代码如下:

注意ajax,用post,用get据说不转义(get方法我没测试过)。

javascript,javascript

函数share(){

var now URL=window . location . href;

var now urlo=now URL . split()[0];

$.ajax({

类型: post ,

URL:“* * * * * * * * * * * * * * * * * * * * *”,//后端接口

数据类型: json ,

data:{ URL :encode uri component(nowurr)},//注意now urr是encode这里;

成功:函数(数据){

wx.config({

Debug: false,//调试模式

AppId: data.appId,//微信官方账号AppId

时间戳:data.timestamp,//时间戳

non castr:data . non castr,//生成签名的随机字符串

签名:data.signature,//签名

jsApiList : [

更新AppMessageShareData ,

更新时间线共享数据,

onMenuShareAppMessage ,

onMenuShareTimeline ,

选择XPay ,

显示选项菜单,

隐藏菜单项,

显示菜单项,

onMenuShareTimeline ,

onMenuShareAppMessage ,

]//必需,要使用的JS接口列表

});

Wx.ready(function () {//需要在用户可以单击共享按钮之前调用。

wx.updateAppMessageShareData({

标题: ,//共享标题

Desc: ,//分享描述

Link: nowurlo,//自动获取(在上面的js代码中)

ImgUrl: ,//共享图标

成功:函数(){

}

});

wx.updateTimelineShareData({

标题: ,//共享标题

链接:nowurlo,自动获取(在上面的js代码中)

ImgUrl: ,//共享图标

成功:函数(){

},

});

});

}

});

}

Php代码

公共函数generateSignature(){

$ timestamp=time();

$ jsapi ticket=;//在此获取jsapi_ticket

$ non castr=MD5(uniqid(microtime(true),true));//我用的是非中心。

$ URL=urldecode(I( post . URL ));

$signature=sha1(jsapi_ticket=)。$jsapiTicket。noncestr=。$ noncestr。时间戳=。$时间戳。url=。$ URL);

$ share config[ appId ]= ;//此处为appId

$ share config[ timestamp ]=$ timestamp;

$ share config[ non centr ]=$ non centr;

$ share config[ signature ]=$ signature;

$ share config[ URL ]=$ URL;

echo JSON _ encode($ share config);

}

总结

以上是边肖介绍的微信二次分享错误无效签名的问题及解决方法。希望对你有帮助。如果您有任何问题,请给我留言,边肖将及时回复您。非常感谢您对我们网站的支持!

微信二次分享报错invalid signature问题及解决方法