微信二次分享报错invalid signature问题及解决方法
程序员文章站
2022-06-04 11:59:17
基于微信公众号开发的h5页面(使用jssdk接口),由用户a分享给用户b,用户b再次分享这个页面时,不能成功分享。问题出在用户b收到的分享链接与用户a打开的链接不同...
基于微信公众号开发的h5页面(使用jssdk接口),由用户a分享给用户b,用户b再次分享这个页面时,不能成功分享。问题出在用户b收到的分享链接与用户a打开的链接不同
a用户的链接为
b用户收到的连接
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问题及解决方法,希望对大家有所帮助
推荐阅读
-
微信二次分享报错invalid signature问题及解决方法
-
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
-
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
-
微信二次分享报错invalid signature问题及解决方法
-
前端微信分享jssdk config:invalid signature 签名错误的解决方法
-
微信分享,终结版,及报错config:fail,Error: invalid signature"错误解决
-
前端微信分享jssdk config:invalid signature 签名错误的解决方法
-
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)