这篇文章主要为大家展示了“如何解决微信二次分享报错invalid signature的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决微信二次分享报错
这篇文章主要为大家展示了“如何解决微信二次分享报错invalid signature的问题”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何解决微信二次分享报错invalid signature的问题”这篇文章吧。
基于微信公众号开发的h6页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享。问题出在用户B收到的分享链接与用户A打开的链接不同
A用户的链接为
B用户收到的连接
http://test.com/test.html&from=singlemessage
from=singlemessage是微信客户端为了区分分享来源再链接后自动添加的标记,再次分享时,需要在js代码中对自动获取的连接进行encodeURIComponent处理,后台再对收到的url进行urldecode处理。
js与PHP示例代码如下:
注意ajax,用的post,用get据说不用转义(get方式本人未做测试)
js代码
function share(){
var nowurl = window.location.href;
var nowurlo = nowurl.split('&')[0];
$.ajax({
type : "post",
url : "***********************", //后端接口
dataType : "JSON",
data : { 'url': encodeURIComponent(nowurl) }, // 注意此处对nowurl进行encode;
success : function (data) {
wx.config({
debug : false, //调试模式
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 : function () {
}
});
wx.updateTimelineShareData({
title : '', // 分享标题
link : nowurlo, 自动获取(上面js代码中)
imgUrl : '', // 分享图标
success : function () {
},
});
});
}
});
}
php代码
public function generateSignature(){
$timestamp = time();
$jsapiTicket = ;//此处获取jsapi_ticket
$noncestr = md5(uniqid(microtime(true),true));//我用的noncestr
$url = urldecode(I('post.url'));
$signature = sha1('jsapi_ticket=' . $jsapiTicket . '&noncestr=' . $noncestr . '×tamp=' . $timestamp . '&url=' . $url);
$shareConfig['appId'] = '';//此处为appId
$shareConfig['timestamp'] = $timestamp;
$shareConfig['noncestr'] = $noncestr;
$shareConfig['signature'] = $signature;
$shareConfig['url'] = $url;
echo json_encode($shareConfig);
}
以上是“如何解决微信二次分享报错invalid signature的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网node.js频道!
--结束END--
本文标题: 如何解决微信二次分享报错invalid signature的问题
本文链接: https://www.lsjlt.com/news/67861.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
2022-06-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0