微信呼叫JSSDK時,驗籤詳細步驟
1.哪個頁面需要呼叫jsskd,則把該頁面的地址webUrl傳入到後臺
2.獲取微信ACCESS_TOKEN
3.呼叫https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi方法,獲取ticket
4.本地生成一個時間戳time
String time = Long.toString(System.currentTimeMillis() / 1000);
5.本地生成一個str
String str = UUID.randomUUID().toString();
6.將上述四個引數拼接成一個字串signatureStr
String signatureStr = "jsapi_ticket=" + ticket+ "&noncestr=" + str + "×tamp=" + time+ "&url=" +webUrl;
7.對signatureStr進行sha1簽名,得到signature,加密方法:
1>使用apache的codec jar包對string進行加密,先下載並引入jar包:
https://mvnrepository.com/artifact/commons-codec/commons-codec/1.10
2>生成:
String signature = DigestUtils.shaHex(signatureStr);
8.將time,str,signature這三個引數返回給前臺頁面
9.依次將這幾個引數放入config中,至此驗簽過程結束
wx.config({
debug: false,
appId: data.data.appid,
timestamp:time,
nonceStr:str,
signature:signature,
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'hideOptionMenu',
'onMenuShareAppMessage'
]
});
10.後續就能直接呼叫微信JSSDK中的介面了。比如呼叫分享當前頁面到朋友圈
wx.ready(function(){
wx.onMenuShareTimeline({
title : shareTitle, // 分享標題
link : url, // 分享連結
imgUrl : 'mall.hanyacapital.com/share.png', // 分享圖示
success : function() {
// 使用者確認分享後執行的回撥函式
alert("分享成功");
},
cancel : function() {
// 使用者取消分享後執行的回撥函式
alert("分享取消");
}
});
//wx.hideOptionMenu();/***隱藏分享選單****/
});