91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決微信二次分享報錯invalid signature的問題

發布時間:2021-06-26 09:54:02 來源:億速云 閱讀:127 作者:小新 欄目:web開發

這篇文章主要為大家展示了“如何解決微信二次分享報錯invalid signature的問題”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何解決微信二次分享報錯invalid signature的問題”這篇文章吧。

基于微信公眾號開發的h6頁面(使用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 . '&timestamp=' . $timestamp . '&url=' . $url);
    $shareConfig['appId']     = '';//此處為appId
    $shareConfig['timestamp']   = $timestamp;
    $shareConfig['noncestr']    = $noncestr;
    $shareConfig['signature']   = $signature;
    $shareConfig['url']      = $url;
    echo json_encode($shareConfig);
  }

以上是“如何解決微信二次分享報錯invalid signature的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东辽县| 青海省| 周口市| 军事| 罗平县| 吉首市| 汕头市| 宁海县| 清河县| 景德镇市| 依安县| 湖南省| 枣强县| 南澳县| 额敏县| 内黄县| 格尔木市| 滕州市| 老河口市| 杂多县| 湾仔区| 岳西县| 徐州市| 桐柏县| 肇源县| 辽源市| 新宾| 紫阳县| 南江县| 临高县| 昂仁县| 新丰县| 北安市| 砚山县| 武汉市| 永安市| 克拉玛依市| 垦利县| 富源县| 盖州市| 乐至县|