微信公众号java后端开发记录(二):后端配置及请求第三方封装

·后端配置详解

微信公众平台文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277

注:本博文使用的的框架结构是 SpringCloud+Springboot+Mybatis-Plus

1.yml常量配置

#公众号
wxpublic:
  appid: x  #公众号appid
  secret: x  #公众号secret
  template_id:
    remind: x  #公众号模板一id(名字见名知意即可)
    reply: x   #公众号模板二id
  #rediskey名字
  rediskey:
      access_token: WechatPublic:access_token  #access_token 存储在redis的key名字

2.1  获取access_token

若是不同业务场景每次拿accesstoken都去请求微信,重复获取将导致上次获取的access_token失效,需定时刷新,保证一致性。access_token默认有7200秒(俩小时)过期时间,所以采取redis将其缓存起来,并设置少于7200秒的时间。每次取用access_token之前都先从redis中获取,若已过期再重新获取。

//============公众号配置参数
@Resource
private RedisTemplate<String, Object> stringRedisTemplate;
@Value("${wxpublic.appid}")
private String wxpublicAppId;

@Value("${wxpublic.secret}")
private String wxpublicAppSecret;

@Value("${wxpublic.rediskey.access_token}")
private String wxpublicAccessTokenRediskey;

//通知模板id
@Value("${wxpublic.template_id.remind}")
private String wxpublicRemindTemplateId;

//回复模板id
@Value("${wxpublic.template_id.reply}")
private String wxpublicReplyTemplateId;

public ResultVO<?> getWxPublicAccessToken() {
        //redis中获取access_token
        String tokenRedis = (String) stringRedisTemplate.opsForValue().get(wxpublicAccessTokenRediskey);
        if (tokenRedis == null) {
            //若没有(从未,或者已过期),请求微信获取
            //请求微信
            JSONObject myAccessToken = WechatApiUtil.getMyAccessToken(wxpublicAppId, wxpublicAppSecret);
            if (myAccessToken.containsKey("access_token")) {
                String newAccessToken = myAccessToke
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值