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

你可能感兴趣的:(微信调用JSSDK时,验签详细步骤)