通過Js-SDK方式實現 兩步: 一、服務端獲取accessToken和jsApiKey, 生成簽名, 傳給前臺使用 二、前臺引入對應js檔案,配置config, 依次呼叫分享的函式
具體實現步驟:
1、繫結域名
先登入微信公眾平臺進入“公眾號設定”的“功能設定”裡填寫“JS介面安全域名”。 根據指引,需要先引入一個txt檔案,通過線上路徑能訪問到即可, 然後才能成功新增域名 2、前端引入js檔案 res.wx.qq.com/open/js/jwe…
3、通過config介面注入許可權驗證配置 所有需要使用JS-SDK的頁面必須先注入配置資訊,否則將無法呼叫 wx.config({ debug: true, // 開啟除錯模式,呼叫的所有api的返回值會在客戶端alert出來,若要檢視傳入的引數,可以在pc端開啟,引數資訊會通過log打出,僅在pc端時才會列印。 appId: '', // 必填,公眾號的唯一標識 timestamp: , // 必填,生成簽名的時間戳 nonceStr: '', // 必填,生成簽名的隨機串 signature: '',// 必填,簽名,見附錄1 jsApiList: [] // 必填,需要使用的JS介面列表,所有JS介面列表見附錄2 });
4、config資訊驗證後會執行ready方法 所以, 分享的各個函式需要寫在ready函式裡,才能確保正確執行
wx.ready(function(){
})
5、通過error介面處理失敗驗證 config資訊驗證失敗時會執行error函式,如簽名過期導致驗證失敗,
wx.error(function(res){ Console.log(res) // 列印出錯誤資訊, 可以在這裡做重新整理簽名處理, 向後臺傳送請求 })
// 前端程式碼
<!--分享-->
<script src="[https://res.wx.qq.com/open/js/jweixin-1.0.0.js](https://res.wx.qq.com/open/js/jweixin-1.0.0.js)"></script>
<script>
wx.config({
debug: false, //除錯階段建議開啟
appId: "wx260c70c8ae7d9b3b",//APPID
timestamp: "{{share_config.Timestamp}}",//上面main方法中拿到的時間戳timestamp
nonceStr: "{{share_config.NonceStr}}",//上面main方法中拿到的隨機數nonceStr
signature: "{{share_config.Signature}}",//上面main方法中拿到的簽名signature
jsApiList: [
//所有要呼叫的 API 都要加到這個列表中
"onMenuShareTimeline",
"onMenuShareAppMessage",
"onMenuShareQQ",
"onMenuShareWeibo",
"onMenuShareQZone"
]
});
// 配置完成後,分享函式一定要寫在ready裡面
wx.ready(function(){
var title = "有色商城看貨節,和我們一起去看貨 - 有色商城",
desc = "有色商城聯合多家鋅合金廠家,舉辦第一屆“看貨節”活動,線上線下相結合,廠家接待,現場看貨,當面洽淡,歡迎和我們一起去看貨!”,
// imgurl 必須是絕對地址,包含協議、域名
imgURL = "https://" + window.location.host + "{{static_server_path.UrlPrefix}}{{static_server_path.Version}}/images/kanhuo/H5/share.jpg",
linkURL = window.location.href;
// 分享給朋友
wx.onMenuShareAppMessage({
title: title, // 分享標題
desc: desc, // 分享描述
link: linkURL, // 分享連結,該連結域名或路徑必須與當前頁面對應的公眾號JS安全域名一致
imgUrl: imgURL // 分享圖示
});
// 分享到朋友圈
wx.onMenuShareTimeline({
title: title, // 分享標題
link: linkURL, // 分享連結,該連結域名或路徑必須與當前頁面對應的公眾號JS安全域名一致
imgUrl: imgURL// 分享圖示
});
// 分享到QQ
wx.onMenuShareQQ({
title: title, // 分享標題
desc: desc, // 分享描述
link: linkURL, // 分享連結,該連結域名或路徑必須與當前頁面對應的公眾號JS安全域名一致
imgUrl: imgURL // 分享圖示
});
// 分享到騰訊微博
wx.onMenuShareWeibo({
title: title, // 分享標題
desc: desc, // 分享描述
link: linkURL, // 分享連結,該連結域名或路徑必須與當前頁面對應的公眾號JS安全域名一致
imgUrl: imgURL // 分享圖示
});
// 分享到qq空間
wx.onMenuShareQZone({
title: title, // 分享標題
desc: desc, // 分享描述
link: linkURL, // 分享連結,該連結域名或路徑必須與當前頁面對應的公眾號JS安全域名一致
imgUrl: imgURL // 分享圖示
});
})
</script>
複製程式碼
工具: 微信JS-SDK說明文件(https://mp.weixin.qq.com/wiki) 微信js介面簽名校驗工具(https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign)