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();/***隐藏分享菜单****/
});