您的位置:首页 > 移动开发 > 微信开发

微信第三方平台开发经验总结(二):获取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数据示例:

{

"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需要的时候再获取就好了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息