mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 03:25:12 +08:00
update 南瑞平台相关接口
This commit is contained in:
@@ -79,7 +79,8 @@ public interface LianLianService {
|
||||
* @param operatorSecret
|
||||
* @return
|
||||
*/
|
||||
String getToken(String urlAddress, String operatorId, String operatorSecret, String dataSecretIv, String signSecret, String dataSecret);
|
||||
String getToken(String urlAddress, String operatorId, String operatorSecret,
|
||||
String dataSecretIv, String signSecret, String dataSecret);
|
||||
|
||||
/**
|
||||
* 推送联联平台 设备状态变化推送
|
||||
|
||||
@@ -744,12 +744,13 @@ public class LianLianServiceImpl implements LianLianService {
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public String getToken(String urlAddress, String operatorId, String operatorSecret, String dataSecretIv, String signSecret, String dataSecret) {
|
||||
public String getToken(String urlAddress, String operatorId, String operatorSecret,
|
||||
String dataSecretIv, String signSecret, String dataSecret) {
|
||||
// String operatorId = dto.getOperatorId();
|
||||
// String operatorSecret = dto.getOperatorSecret();
|
||||
String token = "";
|
||||
try {
|
||||
// 测试用请求地址
|
||||
// 请求地址
|
||||
String requestUrl = urlAddress + "query_token";
|
||||
|
||||
// 请求data
|
||||
|
||||
@@ -155,4 +155,71 @@ public class HttpRequestUtil {
|
||||
// System.out.println("解密数据:" + plainData);
|
||||
return resultMsg;
|
||||
}
|
||||
|
||||
/**
|
||||
* 南瑞平台发送请求
|
||||
*
|
||||
* TODO(和联联平台一样的方法,若测试通过,则统一更换成上面的方法)
|
||||
*
|
||||
* @param token 南瑞平台令牌
|
||||
* @param data 要传输的JsonString格式数据
|
||||
* @param url 请求地址
|
||||
* @param dataSecret 消息密钥
|
||||
* @param dataSecretIV 消息密钥初始化向量
|
||||
* @param operatorId 运营商id
|
||||
* @param sigSecret 签名密钥
|
||||
* @return
|
||||
*/
|
||||
public static String nrSendPost(String token, String data, String url, String dataSecret,
|
||||
String dataSecretIV, String operatorId, String sigSecret){
|
||||
log.info("南瑞平台发送请求 data:{}", data);
|
||||
//加密
|
||||
byte[] encryptText = Cryptos.aesEncrypt(data.getBytes(),
|
||||
dataSecret.getBytes(), dataSecretIV.getBytes());
|
||||
String encryptData = Encodes.encodeBase64(encryptText);
|
||||
System.out.println("加密数据:" + encryptData);
|
||||
|
||||
Map<String, String> params = Maps.newLinkedHashMap();
|
||||
params.put("OperatorID", operatorId);
|
||||
params.put("Data", encryptData);
|
||||
params.put("TimeStamp", DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, new Date()));
|
||||
params.put("Seq", "001");
|
||||
String sign = GBSignUtils.sign(params, sigSecret);
|
||||
params.put("Sig", sign);
|
||||
|
||||
String postData = JSON.toJSONString(params);
|
||||
log.info("南瑞平台发送请求 最终提交数据:{}", postData);
|
||||
// System.out.println("最终提交数据:" + postData);
|
||||
|
||||
String hutoolRequest = HttpRequest.post(url).header("Authorization", "Bearer " + token).body(postData).execute().body();
|
||||
|
||||
log.info("南瑞平台发送请求 接收到返回数据:{}", hutoolRequest);
|
||||
// System.out.println("接收到返回数据:" + hutoolRequest);
|
||||
|
||||
Map<String, Object> map = (Map<String, Object>) JSON.parse(hutoolRequest);
|
||||
|
||||
log.info("南瑞平台发送请求 返回数据map:{}", JSON.toJSONString(map));
|
||||
|
||||
int ret = (int) map.get("Ret");
|
||||
String resultMsg = (String) map.get("Msg");
|
||||
if (ret != 0) {
|
||||
// 表示请求有异常
|
||||
log.error("南瑞平台发送请求 error:{}, 源数据:{}", resultMsg, data);
|
||||
return resultMsg;
|
||||
}
|
||||
String rData = (String) map.get("Data");
|
||||
|
||||
byte[] plainText = Cryptos.aesDecrypt(Encodes.decodeBase64(rData),
|
||||
dataSecret.getBytes(), dataSecretIV.getBytes());
|
||||
String plainData = "";
|
||||
try {
|
||||
plainData = new String(plainText, "UTF-8");
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
log.info("南瑞平台发送请求 解密数据:{}", plainData);
|
||||
// System.out.println("解密数据:" + plainData);
|
||||
return resultMsg;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user