| 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<String> { | 
|     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; | 
|         } | 
|         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")); | 
|             } | 
|   | 
|         } | 
|   | 
|   | 
|     } | 
| } |