基于微信公众号开发的h5页面(使用jssdk接口),如果用户a与用户b共享,用户b再次共享此页面,则无法成功共享。 问题是用户b收到的共享链接与用户a打开的链接不同
a指向用户的链接是
b用户收到的连接
from=singlemessage是微信客户端重新链接以区分共享源后自动添加的标记,如果要再次共享,请对通过js代码自动获取的连接进行加密组件处理,并在后台接收
js和php的示例代码如下。
请注意ajax。 据说使用的post可以不通过get退出。 (get方式本人没有测试。 )
js代码
函数共享
var nowurl=window.location.href;
var nowurlo=nowurl.split (' ' ) [0];
$.Ajax({
类型: ' post ',
URL : ' * * * * * * * * * * * * * * * * * * * * * ',/后端接口
数据类型: ' JSON ',
数据: { ' URL ' :编码组件(nowurl ) },//请注意此处对nowurl进行编码;
success :函数(data ) {
wx.config({ (
调试模式:调试:假
appId : data.appId,//公众号appid
timestamp : data.timestamp,//时间戳
nonceStr : data.noncestr,//生成签名的随机字符串
signature : data.signature,//签名
jsApiList : [
' updateAppMessageShareData ',
' updateTimelineShareData ',
' onMenuShareAppMessage ',
' onMenuShareTimeline ',
" chooseWXPay ",
" showOptionMenu ",
" hideMenuItems ",
" showMenuItems ",
' onMenuShareTimeline ',
' onMenuShareAppMessage ',
//必需,要使用的JS接口列表
);
wx.ready(function ) ()//在用户可能单击共享按钮之前必须调用
wx.updateAppMessageShareData({ ((
title : ',//共享标题
desc : ',//共享说明
link : nowurlo,//自动获取(按上面的js代码)
imgUrl : ',//共享图标
success :函数(
}
);
wx.updateTimelineShareData({ ((
title : ',//共享标题
link : nowurlo,自动获取(上述js代码中) ) ) )。
imgUrl : ',//共享图标
success :函数(
(,
);
);
}
);
}
php代码
公共功能识别{
$timestamp=time (;
$jsapiTicket=; //在此处获取jsapi_ticket
$ nonce str=MD5 (uniqid (microtime (true ),true ); //我使用的noncestr
$URL=urldecode(I(post.URL );
$ signature=sha1 (jsapi _ ticket='.$ jsapi ticket.' nonce str='.$ nonce str.' timestamp='.$ timestamp ' usususe
$shareConfig['appId']=' '; //这里是appId
$ shareconfig [ ' timestamp ' ]=$ timestamp;
$ shareconfig [ ' nonce str ' ]=$ nonce str;
$ shareconfig [ ' signature ' ]=$ signature;
$shareConfig['url']=$url;
echoJSON_encode($shareconfig;
}
总结
以上就是小编介绍的微信第二次共享错误invalid signature的问题和解决方法,希望对大家有所帮助。 如果大家有什么疑问的话请给我发信息。 编辑马上给大家回信。 在这里也感谢您对脚本屋网站的支持!