在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般作为邀请、登录系统使用。获得token的话首先会有甲方提供一些数据,然后获得token的入参和出参。接着咱们就可以写代码了。
今天咱们来说说怎么通过代码来获取token。
获得token的话首先会有甲方提供一些数据
类似于这种,token的入参和出参。接着咱们就可以写代码了。
/**
获取token
@return
*/
public String getToken(){
String shortUrl = WEIXIN_SHORT_TOKEN;//这是一个token的入参url 只是我把它放到配置文件了。
logger.info("json_token_short requestUrl:"+ shortUrl);
String jsonTokenShort = null;
try {
jsonTokenShort = httpClientWraper.mockPostJsonNew(shortUrl, null, false);
} catch (Exception e) {
e.printStackTrace();
}
logger.info("获取jsonTokenShort响应:"+jsonTokenShort);
Map<String,Object> mapResultShort = (Map)JSON.parse(jsonTokenShort);
// if (jsonTokenShort.contains("errcode") && !mapResultShort.get("errcode").toString().equals("0")) {
// throw new GzhBizRuntimeException(mapResultShort.get("errcode").toString(),mapResultShort.get("errmsg").toString());
// }
Object tokenShortA = mapResultShort.get("value");
if(tokenShortA == null){
throw new GzhBizRuntimeException(RespCodeEnum.GET_SHORT_TOKEN_ERREO.getRespCode(),
RespCodeEnum.GET_SHORT_TOKEN_ERREO.getRespmsg());
}
String tokenShortB = mapResultShort.get("value").toString();
String longUrl = WEIXIN_LONG_TOKEN.concat("dataface/wechatKey?token=") + tokenShortB ;
logger.info("json_token_long requestUrl:"+ longUrl);
// String longUrl = String.format(url_template,tokenShort);
// logger.info("json_token_long requestUrl:"+ longUrl);
String jsonTokenLong = null;
try {
jsonTokenLong = httpClientWraper.mockPostJsonNew(longUrl, null, false);
} catch (Exception e) {
e.printStackTrace();
}
logger.info("获取jsonTokenShort响应:"+ jsonTokenLong);
Map<String,Object> mapResultLong = (Map)JSON.parse(jsonTokenLong);
// if (jsonTokenShort.contains("errcode") && !mapResultLong.get("errcode").toString().equals("0")) {
// throw new GzhBizRuntimeException(mapResultLong.get("errcode").toString(),mapResultLong.get("errmsg").toString());
// }
Object tokenLongA = mapResultLong.get("value");
if(tokenLongA == null){
throw new GzhBizRuntimeException(RespCodeEnum.GET_LONG_TOKEN_ERREO.getRespCode(),
RespCodeEnum.GET_LONG_TOKEN_ERREO.getRespMsg());
}
String tokenLongB = mapResultLong.get("value").toString();
Map<String,Object> mapResult = (Map)JSON.parse(tokenLongB);
String token = mapResult.get("key").toString();
tokenMap.put("token", token);
logger.info("token>>>>>>>>>>>>>>>>>>>>>>>" + token);
return token;
}
这个方法就可以获取到token了。
这个是获取了两次,第一次获取短的token,然后第二次获取长的token并使用拼接把短的token也拼接上去。最后才获取到最后的token。获取两次是为了安全。
最后,推荐我们的管理工具给大家