微信第三方平台开发经验总结(二):获取component_access_token

来源:互联网 发布:tensorflow视频百度云 编辑:程序博客网 时间:2024/05/21 15:00
获取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数据示例:

{
"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需要的时候再获取就好了
阅读全文
1 0
原创粉丝点击