feat: get yundang access token api
This commit is contained in:
parent
cb89a454ef
commit
27512d12ad
@ -1,8 +1,10 @@
|
|||||||
package com.wmyun.module.shipping.controller.admin;
|
package com.wmyun.module.shipping.controller.admin;
|
||||||
|
|
||||||
import com.wmyun.framework.common.pojo.CommonResult;
|
import com.wmyun.framework.common.pojo.CommonResult;
|
||||||
|
import com.wmyun.module.shipping.service.YunDangAuthService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
@ -22,9 +24,18 @@ import static com.wmyun.framework.common.pojo.CommonResult.success;
|
|||||||
@Validated
|
@Validated
|
||||||
public class DefaultController {
|
public class DefaultController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private YunDangAuthService authService;
|
||||||
|
|
||||||
@GetMapping("/get")
|
@GetMapping("/get")
|
||||||
@Operation(summary = "Default API")
|
@Operation(summary = "Default API")
|
||||||
public CommonResult<String> get() {
|
public CommonResult<String> get() {
|
||||||
return success(this.getClass().getName());
|
return success(this.getClass().getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/token")
|
||||||
|
@Operation(summary = "获取云当网访问token")
|
||||||
|
public CommonResult<String> token() {
|
||||||
|
return success(authService.getAccessToken());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.wmyun.module.shipping.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 云当网访问相关异常
|
||||||
|
* @Date: 2025/3/10 15:23
|
||||||
|
* @Created: by ZZSLL
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class ShippingException extends RuntimeException {
|
||||||
|
|
||||||
|
public ShippingException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.wmyun.module.shipping.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 获取云当网访问token
|
||||||
|
* @Date: 2025/3/10 15:03
|
||||||
|
* @Created: by ZZSLL
|
||||||
|
*/
|
||||||
|
|
||||||
|
public interface YunDangAuthService {
|
||||||
|
|
||||||
|
String getAccessToken();
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,60 @@
|
|||||||
|
package com.wmyun.module.shipping.service;
|
||||||
|
|
||||||
|
import cn.hutool.http.HttpUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.google.common.collect.Maps;
|
||||||
|
import com.wmyun.module.shipping.exception.ShippingException;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.cache.annotation.Cacheable;
|
||||||
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 获取云当网访问token
|
||||||
|
* @Date: 2025/3/10 15:04
|
||||||
|
* @Created: by ZZSLL
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class YunDangAuthServiceImpl implements YunDangAuthService{
|
||||||
|
|
||||||
|
@Value("${yundang.baseUrl}")
|
||||||
|
private String baseUrl;
|
||||||
|
|
||||||
|
@Value("${yundang.companyId}")
|
||||||
|
private String companyId;
|
||||||
|
|
||||||
|
@Value("${yundang.appSecret}")
|
||||||
|
private String secret;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Cacheable(value = "shipping", key = "'access_token#3000#'")
|
||||||
|
public String getAccessToken() {
|
||||||
|
JSONObject data = new JSONObject();
|
||||||
|
data.put("companyid", companyId);
|
||||||
|
data.put("secret", secret);
|
||||||
|
JSONObject body = new JSONObject();
|
||||||
|
body.put("data", JSONObject.toJSONString(data));
|
||||||
|
// response
|
||||||
|
String url = baseUrl + "/authorization";
|
||||||
|
log.info("[请求云当网] METHOD: {}, PATH: {}, Body: {}", "POST", url, body.toJSONString());
|
||||||
|
String response = HttpUtil.post(url, body);
|
||||||
|
log.info("[请求云当网] Response: {}", response);
|
||||||
|
JSONObject resp = JSON.parseObject(response);
|
||||||
|
if (resp.containsKey("status")) {
|
||||||
|
if (resp.getInteger("status") == 0) {
|
||||||
|
if (resp.containsKey("token")) {
|
||||||
|
return resp.getString("token");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new ShippingException(String.format("[云当网访问异常]:执行方法 {%s}, 返回结果 {%s}", this.getClass().getName(), response));
|
||||||
|
}
|
||||||
|
}
|
@ -117,3 +117,9 @@ wmyun:
|
|||||||
enable: true
|
enable: true
|
||||||
|
|
||||||
debug: false
|
debug: false
|
||||||
|
|
||||||
|
|
||||||
|
yundang:
|
||||||
|
appSecret: 53a0357f-a31c-406e-bea8-15bc31af7e9a
|
||||||
|
companyId: 3883
|
||||||
|
baseUrl: http://apis.my56home.com/api/v1
|
Loading…
Reference in New Issue
Block a user