最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:懂视网 责编:小采 时间:2020-11-27 21:59:33
文档

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

微信二次分享报错invalid signature问题及解决方法:基于微信公众号开发的h5页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享。问题出在用户B收到的分享链接与用户A打开的链接不同 A用户的链接为 http://test.com/test.html B用户收到的连接 http://test.co
推荐度:
导读微信二次分享报错invalid signature问题及解决方法:基于微信公众号开发的h5页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享。问题出在用户B收到的分享链接与用户A打开的链接不同 A用户的链接为 http://test.com/test.html B用户收到的连接 http://test.co

基于微信公众号开发的h5页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享。问题出在用户B收到的分享链接与用户A打开的链接不同

A用户的链接为

http://test.com/test.html

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问题及解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

文档

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

微信二次分享报错invalid signature问题及解决方法:基于微信公众号开发的h5页面(使用jssdk接口),由用户A分享给用户B,用户B再次分享这个页面时,不能成功分享。问题出在用户B收到的分享链接与用户A打开的链接不同 A用户的链接为 http://test.com/test.html B用户收到的连接 http://test.co
推荐度:
标签: 微信 问题 invalid
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top