您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何解決微信二次分享報錯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 . '×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的問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。