微信jssdk 授权 java_微信JS SDK配置授权,实现分享接口

微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享、扫一扫、卡券、支付等微信特有的能力。7月份的时候,因为这个分享的证书获取问题深深的栽了一坑,后面看到“config:ok”的时候真的算是石头落地,瞬间感觉世界很美好..

这篇文章是微信开发的很多前置条件,包括了服务端基于JAVA的获取和缓存全局的access_token,获取和缓存全局的jsapi_ticket,以及前端配置授权组件封装,调用分享组件封装。

配置授权思路:首先根据access_token获取jsapi_ticket,在通过获取到的jsapi_ticket以及随机生成的字符串、时间戳,再加上需要授权的页面地址url,进行SHA-1加密,返回加密字符串,最后根据加密串调用微信提供的config接口。

配置JS接口安全域名

公众平台--公众号设置--功能设置--js接口安全域名

61a5204eb248a0e740c0c0aa5dbd5e2c.png

获取、缓存全局的access_token

fcecaa27ea5212ceb9bf034c36bfbf34.gif

/**

* 微信全局票据 ---->>>> access_token

* @return

* @throws ClientProtocolException

* @throws IOException

*/

public String getBaseAccessToken() throws ClientProtocolException, IOException{

try {

String value = redisService.get("WEIXIN_BASE_ACCESS_TOKEN");

if (!StringUtils.isEmpty(value)) {

LOGGER.info("Get base access_token from redis is successful.value:{}",value);

return value;

}else{

synchronized (this) {

//缓存中没有、或已经失效

String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+WX_APPID+"&secret="+ WX_APPSECRET;

String rs = apiService.doGet(url);

JSONObject obj_content = JSONObject.parseObject(rs);

String accessToken = obj_content.getString("access_token");

Integer time = Integer.parseInt(obj_content.getString("expires_in").toString());

//写缓存

redisService.set("WEIXIN_BASE_ACCESS_TOKEN", accessToken, time - 3600);

LOGGER.info("Set base access_token to redis is successful.parameters time:{},realtime",time,time-3600);

return accessToken;

}

}

} catch (Exception e) {

LOGGER.error("Get base access_token from redis is error.");

}

return null;

}

fcecaa27ea5212ceb9bf034c36bfbf34.gif

先从缓存中取key为“WX_BASE_ACCESS_TOKEN” ,如果命中直接返回值,反之通过httpclient发送GET请求调用微信提供的接口

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值