微信第三方平台开发经验总结(二):获取component_access_token
2017-08-14 18:20
661 查看
获取component_access_token
第三方平台component_access_token是第三方平台的下文中接口的调用凭据,也叫做令牌(component_access_token)。每个令牌是存在有效期(2小时)的,且令牌的调用不是无限制的,请第三方平台做好令牌的管理,在令牌快过期时(比如1小时50分)再进行刷新。
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/component/api_component_token
POST数据示例:
}
这部分就简单一点
判断token未过期直接返回(不要频繁的请求token,微信有请求次数限制)
判断ticket是否存在或过期
拼装json
发送Https请求并获取结果
解析结果并保存token
注意点基本没有
@Override
public String getComponentAccessToken() {
String componentAccessToken = ComponentInfo.getComponentAccessToken();
/**判断数据库中是否存在component_access_token*/
if(!componentAccessToken.isEmpty()){
/**如果存在,直接返回token的值*/
return componentAccessToken;
}
/**ticket若不存在,返回错误信息*/
if(ComponentInfo.componentVerifyTicket.isEmpty()){
/**错误信息*/
return "如果出现这条消息,说明ticket以及token的过期处理存在BUG";
}
/**拼装待发送的Json*/
JSONObject json = new JSONObject();
json.accumulate("component_appid",ThirdPartyConfig.APP_ID);
json.accumulate("component_appsecret",ThirdPartyConfig.APP_SECRET);
json.accumulate("component_verify_ticket",ComponentInfo.componentVerifyTicket);
logger.info("ThirdPartyServiceImpl:getComponentAccessToken:json={}",json);
/**发送Https请求到微信*/
String retStr = HttpsUtil.postHtpps(ThirdPartyConfig.COMPONENT_TOKEN_URL,json.toString());
logger.info("ThirdPartyServiceImpl:getComponentAccessToken:retStr={}",retStr);
JSONObject resultJson = JSONObject.fromObject(retStr);
/**在返回结果中获取token*/
componentAccessToken = resultJson.getString("component_access_token");
/**保存token,并设置有效时间*/
ComponentInfo.setComponentAccessToken(componentAccessToken);
return componentAccessToken;
}
大概这种感觉就好了,这一步可以单独做,测试比较方便
实际使用的时候可以在其他API需要的时候再获取就好了
第三方平台component_access_token是第三方平台的下文中接口的调用凭据,也叫做令牌(component_access_token)。每个令牌是存在有效期(2小时)的,且令牌的调用不是无限制的,请第三方平台做好令牌的管理,在令牌快过期时(比如1小时50分)再进行刷新。
接口调用请求说明
http请求方式: POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/component/api_component_token
POST数据示例:
{ "component_appid":"appid_value" , "component_appsecret": "appsecret_value", "component_verify_ticket": "ticket_value"
}
这部分就简单一点
判断token未过期直接返回(不要频繁的请求token,微信有请求次数限制)
判断ticket是否存在或过期
拼装json
发送Https请求并获取结果
解析结果并保存token
注意点基本没有
@Override
public String getComponentAccessToken() {
String componentAccessToken = ComponentInfo.getComponentAccessToken();
/**判断数据库中是否存在component_access_token*/
if(!componentAccessToken.isEmpty()){
/**如果存在,直接返回token的值*/
return componentAccessToken;
}
/**ticket若不存在,返回错误信息*/
if(ComponentInfo.componentVerifyTicket.isEmpty()){
/**错误信息*/
return "如果出现这条消息,说明ticket以及token的过期处理存在BUG";
}
/**拼装待发送的Json*/
JSONObject json = new JSONObject();
json.accumulate("component_appid",ThirdPartyConfig.APP_ID);
json.accumulate("component_appsecret",ThirdPartyConfig.APP_SECRET);
json.accumulate("component_verify_ticket",ComponentInfo.componentVerifyTicket);
logger.info("ThirdPartyServiceImpl:getComponentAccessToken:json={}",json);
/**发送Https请求到微信*/
String retStr = HttpsUtil.postHtpps(ThirdPartyConfig.COMPONENT_TOKEN_URL,json.toString());
logger.info("ThirdPartyServiceImpl:getComponentAccessToken:retStr={}",retStr);
JSONObject resultJson = JSONObject.fromObject(retStr);
/**在返回结果中获取token*/
componentAccessToken = resultJson.getString("component_access_token");
/**保存token,并设置有效时间*/
ComponentInfo.setComponentAccessToken(componentAccessToken);
return componentAccessToken;
}
大概这种感觉就好了,这一步可以单独做,测试比较方便
实际使用的时候可以在其他API需要的时候再获取就好了
相关文章推荐
- 微信第三方平台开发授权2:获取component_access_token,pre_auth_code
- 微信第三方平台开发经验总结(一):接收component_verify_ticket
- 微信开放平台开发(三)获取component_access_token
- 微信第三方平台开发经验总结(五):接收授权方授权请求并保存授权方信息
- 微信第三方平台开发经验总结(六):接收微信用户发送的事件以及消息
- 微信开发学习总结(二)—微信开发入门(公众号接入以及access_token获取)
- 微信第三方平台开发授权1:获取component_verify_ticket
- 微信第三方平台开发经验总结(四):重定向到授权页
- java微信获取access_token(java微信开发学习笔记4)
- 微信公共服务平台开发(.Net 的实现)5-------解决access_token过期的问题
- PHP微信开发之获取access_token
- 使用Java进行微信开发3- 获取access_token
- 微信接口开发1--向微信发送请求--获取access_token
- 微信开发使用access_token 获取微信的ip地址
- 微信公共服务平台开发(.Net 的实现)5-------解决access_token过期的问题
- PHP微信开发之获取access_token
- 微信access_token的获取开发示例
- 微信公共服务平台开发(.Net 的实现)5-------解决access_token过期的问题
- 微信公共平台开发-(.net实现)5--access_token过期的问题