摘要:基于微信公眾號開發的頁面使用接口,由用戶分享給用戶,用戶再次分享這個頁面時,不能成功分享。
基于微信公眾號開發的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); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/109287.html
摘要:基于微信公眾號開發的頁面使用接口,由用戶分享給用戶,用戶再次分享這個頁面時,不能成功分享。 基于微信公眾號開發的h5頁面(使用jssdk接口),由用戶A分享給用戶B,用戶B再次分享這個頁面時,不能成功分享。問題出在用戶B收到的分享鏈接與用戶A打開的鏈接不同A用戶的鏈接為 http://test.com/test.html B用戶收到的連接 http://test.com/test.h...
摘要:接下來通過詳細的步驟介紹如何接入微信二次分享操作。不要嘗試在中使用異步請求修改本次分享的內容,因為客戶端分享操作是一個同步操作,這時候使用的回包會還沒有返回用戶點擊分享到朋友圈已分享已取消此時微信二次分享就已經大功告成了。 微信二次分享 效果演示 showImg(https://segmentfault.com/img/remote/1460000016895951); 如何運行項目 ...
閱讀 2283·2021-09-30 09:47
閱讀 2209·2021-09-26 09:55
閱讀 2937·2021-09-24 10:27
閱讀 1534·2019-08-27 10:54
閱讀 960·2019-08-26 13:40
閱讀 2486·2019-08-26 13:24
閱讀 2410·2019-08-26 13:22
閱讀 1719·2019-08-23 18:38