国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點 > 微信 > 正文

微信二次分享報錯invalid signature問題及解決方法

2024-07-22 01:18:51
字體:
來源:轉載
供稿:網友

基于微信公眾號開發的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);  }             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屏南县| 凤阳县| 肃宁县| 商丘市| 自治县| 武夷山市| 汉阴县| 商都县| 苏州市| 衡东县| 曲靖市| 丰台区| 江阴市| 饶阳县| 神木县| 德钦县| 旺苍县| 开封市| 泗洪县| 德钦县| 任丘市| 湘潭县| 库车县| 辽源市| 日喀则市| 桦南县| 东海县| 肥城市| 金堂县| 贵德县| 元谋县| 汝南县| 连云港市| 南宫市| 天水市| 尉氏县| 绥阳县| 河东区| 通化县| 扎赉特旗| 龙南县|