You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.6 KiB
Java

package com.weaver.seconddev.util;
import cn.hutool.http.HttpRequest;
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.IOException;
/**
* @Author: calyrex
* @CreateTime: 2025-04-25
* @Description: 接口信息获取工具
*/
@Component
@Slf4j
public class InterInfoAchieveUtil {
@Autowired
private DataOperateUtil dataOperateUtil;
public String getCode(String tenantKey){
try {
String corpid = dataOperateUtil.null2String(dataOperateUtil.getConfig("corpid",tenantKey));
String response_type = "code";
String state = "xxx";
String url = dataOperateUtil.null2String(dataOperateUtil.getConfig("oa_address",tenantKey)) + "/papi/openapi/oauth2/authorize?corpid=" +
corpid + "&response_type=" + response_type + "&state=" + state;
String body = HttpRequest.get(url).execute().body();
// log.info("getCode body-->" + body);
return body;
}catch (Exception e){
log.error("getCode error--> " + e);
return "";
}
}
public String getToken(String code,String tenantKey) throws IOException {
String app_key = dataOperateUtil.null2String(dataOperateUtil.getConfig("app_key",tenantKey));
String app_secret = dataOperateUtil.null2String(dataOperateUtil.getConfig("app_secret",tenantKey));
String grant_type = "authorization_code";
// JSONObject params = new JSONObject();
// params.put("app_key",app_key);
// params.put("app_secret",app_secret);
// params.put("grant_type",grant_type);
// params.put("code",code);
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
String params = "app_key="+app_key+"&app_secret="+app_secret+"&grant_type="+grant_type+"&code="+code;
String url = dataOperateUtil.null2String(dataOperateUtil.getConfig("oa_address",tenantKey)) + "/papi/openapi/oauth2/access_token";
// log.info("getToken params-->" + params);
RequestBody body = RequestBody.create(mediaType, params);
Request request = new Request.Builder()
.url(url)
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
}