69 lines
2.7 KiB
Java
Raw Normal View History

2023-02-16 15:28:15 +08:00
package com.zhgd.xmgl.util;
import cn.hutool.core.map.MapUtil;
import cn.hutool.crypto.SecureUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
import java.util.function.Supplier;
/**
2023-08-02 17:59:49 +08:00
* 携稳Util
*
2023-02-16 15:28:15 +08:00
* @author 邱平毅
* @ClassName XiwonUtil
* @date 2022/11/15 14:05
* @Version 1.0
*/
@Component
@Slf4j
public class XiwonUtil {
@Autowired
RestTemplate restTemplate;
2024-01-02 18:35:40 +08:00
public String getToken(long requestTime, String xiwonAppId, String xiwonAppSecret) {
return SecureUtil.md5(xiwonAppId + xiwonAppSecret + requestTime);
2023-02-16 15:28:15 +08:00
}
2024-01-02 18:35:40 +08:00
public <T> T postForm(String url, String xiwonAppId, String xiwonAppSecret, Map<String, Object> map, Class<T> returnClass, Supplier supplier) {
2023-02-16 15:28:15 +08:00
HttpHeaders requestHeaders = new HttpHeaders();
2024-01-02 18:35:40 +08:00
requestHeaders.set("appId", xiwonAppId);
2023-02-16 15:28:15 +08:00
long currentTimeMillis = System.currentTimeMillis();
requestHeaders.set("requestTime", currentTimeMillis + "");
2024-01-02 18:35:40 +08:00
requestHeaders.set("sign", getToken(currentTimeMillis, xiwonAppId, xiwonAppSecret));
2023-02-16 15:28:15 +08:00
requestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(requestHeaders);
if (supplier != null) {
supplier.get();
}
2023-11-22 11:27:34 +08:00
String sendUrl = url + "?" + MapUtil.join(map, "&", "=");
log.info("postForm:url:{}", sendUrl);
return restTemplate.postForObject(sendUrl, requestEntity, returnClass);
}
public <T> T postDustForm(String url, String appId, String appSecret, Map<String, Object> map, Class<T> returnClass, Supplier supplier) {
HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.set("appId", appId);
long currentTimeMillis = System.currentTimeMillis();
requestHeaders.set("requestTime", currentTimeMillis + "");
requestHeaders.set("sign", SecureUtil.md5(appId + appSecret + currentTimeMillis));
requestHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(requestHeaders);
if (supplier != null) {
supplier.get();
}
String sendUrl = url + "?" + MapUtil.join(map, "&", "=");
log.info("postForm: url:{}, appId:{}, appSecret:{}", sendUrl, appId, appSecret);
return restTemplate.postForObject(sendUrl, requestEntity, returnClass);
2023-02-16 15:28:15 +08:00
}
}