package com.zy.asrs.task.handler; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.core.exception.CoolException; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.ErpAccessTokenScheduler; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.io.IOException; @Service @Slf4j public class ErpAccessTokenHandler extends AbstractHandler { private String erpIp = "http://10.100.221.19:81"; public void getAccessToken() { JSONObject appTokenJson = new JSONObject(); appTokenJson.put("appId", "ESB"); appTokenJson.put("appSecuret", "123456789"); appTokenJson.put("tenantid", "ierp"); appTokenJson.put("accountId", "1492035591649364992"); appTokenJson.put("language", "zh_CN"); JSONObject appTokenResp; //获取app_token,用app_token获取access_token try { appTokenResp = JSON.parseObject(new HttpHandler.Builder() .setUri(erpIp) .setPath("/ierp/api/getAppToken.do") .setJson(appTokenJson.toJSONString()) .build() .doPost()); } catch (IOException e) { log.info("连接erp服务器超时"); return; } JSONObject data = null; try { data = (JSONObject) appTokenResp.get("data"); } catch (Exception e) { System.out.println("获取appToken为空"); throw new CoolException(e); } if(data == null){ return; } //获取access_token if ((boolean) data.get("success")) { JSONObject accessTokenJson = new JSONObject(); accessTokenJson.put("user", "13800000000"); accessTokenJson.put("apptoken", (String) data.get("app_token")); accessTokenJson.put("tenantid", "ierp"); accessTokenJson.put("accountId", "1492035591649364992"); accessTokenJson.put("usertype", "Mobile"); JSONObject accessTokenResp; //获取app_token,用app_token获取access_token try { accessTokenResp = JSON.parseObject(new HttpHandler.Builder() .setUri(erpIp) .setPath("/ierp/api/login.do") .setJson(accessTokenJson.toJSONString()) .build() .doPost()); } catch (IOException e) { throw new RuntimeException(e); } JSONObject accessTokenData = null; try { accessTokenData = (JSONObject) accessTokenResp.get("data"); } catch (Exception e) { System.out.println("获取accessToken为空"); throw new CoolException(e); } if ((boolean) accessTokenData.get("success")) { ErpAccessTokenScheduler.accessToken = (String) accessTokenData.get("access_token"); log.info("更新access_token, 新token为:" + (String) accessTokenData.get("access_token")); } } } }