ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

微信公众号入门笔记(四)获取access_token(3/4)

来源:网络整理     时间:2016-01-31     关键词:

本篇文章主要介绍了"微信公众号入门笔记(四)获取access_token",主要涉及到方面的内容,对于Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下: 作者:zhutulang 以下是微信公众平台开发者文档中截取的内容: access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_t...

package com.dongliushui.quartz;

importjava.io.UnsupportedEncodingException;

import org.apache.log4j.Logger;
importorg.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
importorg.springframework.stereotype.Component;

import com.dongliushui.util.HttpUtil;

/**
 *@ClassName: AccessTokenTaker
 *@Description: 获取access_token
 *@author zhutulang
 *@date 2016年1月10日
 *@version V1.0
 */
@Component
public class AccessTokenTaker {

         @Value("#{weixinProperties['AppId']}")
         private  String appId;

         @Value("#{weixinProperties['AppSecret']}")
         private  String appSecret;

         @Value("#{weixinProperties['get_access_token_url']}")
         private  String getAccessTokenUrl;

         /**
          * access_token
          */
         privatestatic  String ACCESS_TOKEN = null;
         /**
          * 上次更新access_token时间
          */
         privatestatic  LongLAST_ACCESS_TOKEN_UPDATE_TIME = null;

         privatestatic Logger log = Logger.getLogger(AccessTokenTaker.class);

         /**
          * 

Title: get</p> *

Description: 每隔一个小时去获取一次access_token</p> * @author zhutulang * @version 1.0 */ @Scheduled(fixedRate=3600000) privatevoid getTask(){ get(); } /** *

Title: getFromCache</p> *

Description: 从缓存中获取access_token</p> * @return * @author zhutulang * @version 1.0 */ public String getFromCache(){ returnACCESS_TOKEN; } /** *

Title: getNew</p> *

Description: 强制更新、获取access_token</p> *

如果发现现在的时间戳和上次更新的时间戳间隔小于5分钟,那么不更新

* @return * @author zhutulang * @version 1.0 */ publicsynchronized String getNew(){ longtimeNow = System.currentTimeMillis(); if(LAST_ACCESS_TOKEN_UPDATE_TIME== null){ get(); }elseif(timeNow - LAST_ACCESS_TOKEN_UPDATE_TIME < 300000){ //如果是5分钟以内 returnACCESS_TOKEN; }else{ get(); } returnACCESS_TOKEN; } /** *

Title: get</p> *

Description: 调用获取access_token接口</p> * @author zhutulang * @version 1.0 */ synchronized void get(){ Stringurl = getAccessTokenUrl.replace("APPID",appId).replace("APPSECRET", appSecret); StringcontentType = "application/json"; byte[]bytes = HttpUtil.doHttpsGet(url, contentType); try{ StringaccessToken = new String(bytes, "UTF-8"); longtimeNow = System.currentTimeMillis(); ACCESS_TOKEN= accessToken; LAST_ACCESS_TOKEN_UPDATE_TIME= timeNow; log.info("执行获取access_token任务,access_token="+ACCESS_TOKEN); log.info("时间戳="+LAST_ACCESS_TOKEN_UPDATE_TIME); }catch (UnsupportedEncodingException e) { //TODO Auto-generated catch block e.printStackTrace(); } } publicString getAppId() { returnappId; } publicvoid setAppId(String appId) { this.appId= appId; } publicString getAppSecret() { returnappSecret; } publicvoid setAppSecret(String appSecret) { this.appSecret= appSecret; } publicString getGetAccessTokenUrl() { returngetAccessTokenUrl; } publicvoid setGetAccessTokenUrl(String getAccessTokenUrl) { this.getAccessTokenUrl= getAccessTokenUrl; } }


 其它相关代码可查看:

相关图片

相关文章