package com.nuvole.util;
|
|
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpResponse;
|
import com.alibaba.fastjson.JSONObject;
|
import com.nuvole.hnnx.hnnxPay.NXHttpClientUtils;
|
import com.nuvole.hnnx.hnnxPay.SignatureSigner;
|
import com.nuvole.util.enums.LaPushEnum;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang.StringUtils;
|
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @ClassName LaBaPushUtil
|
* @Author cy
|
* @Date 2023/12/7
|
* @Description
|
* @Version 1.0
|
**/
|
@Slf4j
|
public class LaBaPushUtil {
|
private static final String DEVICE_ID = "202312080001";
|
|
private static String ACCESSKEYSECRET = "AtR4g5sa24fdy6GII3hts75_CSYH";
|
private static String accessKeyId = "IOT_ACCOUNT_TEST_CSYH";
|
|
private static SignatureSigner signable = new SignatureSigner();
|
//生产环境
|
private static String scUrl = "https://voice.tysmartpos.com/api/bank/pushmsg";
|
//测试环境
|
private static String csUrl = "https://voicetest.tysmartpos.com/api/bank/pushmsg";
|
|
// public static void main(String[] args) {
|
// String deviceId = "202312080001";
|
//// String 010859416327 = "202312080001";
|
//// push(deviceId, LaPushEnum.YINHANG, 111);
|
// pushMessageToSingle(deviceId, LaPushEnum.ZFB, 222);
|
////// push(deviceId, LaPushEnum.WX, 333);
|
// pushMessageToSingle(deviceId, LaPushEnum.CANCLE, 444);
|
// }
|
|
public static void pushMessageToSingle(String deviceId, LaPushEnum pushType, long money) {
|
if (StringUtils.isEmpty(deviceId)){
|
return;
|
}
|
Map<String, String> parameters = new HashMap<>();
|
parameters.put("accessKeyId", accessKeyId);
|
parameters.put("requestId", String.valueOf(System.currentTimeMillis()));
|
//请求时间戳,格式如:1593532800000
|
parameters.put("timestamp", String.valueOf(System.currentTimeMillis()));
|
//设备编号
|
parameters.put("deviceId", deviceId);
|
|
String moneyYuan = NXHttpClientUtils.convertToYuan(money).toString();
|
parameters.put("content", pushType.getName() + moneyYuan + "元");
|
String signStr = signable.laBaSign(parameters, ACCESSKEYSECRET);
|
parameters.put("sign", signStr);
|
String jsonBody = JSONObject.toJSONString(parameters);
|
|
String result = null;
|
log.info("天喻云音响请求参数:{}", jsonBody);
|
HttpResponse response = HttpRequest.post(csUrl)
|
.contentType("application/json")
|
.body(jsonBody)
|
.execute();
|
// 获取响应结果
|
result = response.body();
|
log.info("天喻云音响推送返回值:{}", result);
|
return;
|
}
|
|
public static void pushMessageToList(LaPushEnum pushType, long money, List<String> deviceIdList) {
|
Map<String, String> parameters = new HashMap<>();
|
parameters.put("accessKeyId", accessKeyId);
|
parameters.put("requestId", String.valueOf(System.currentTimeMillis()));
|
//请求时间戳,格式如:1593532800000
|
parameters.put("timestamp", String.valueOf(System.currentTimeMillis()));
|
String moneyYuan = NXHttpClientUtils.convertToYuan(money).toString();
|
parameters.put("content", pushType.getName() + moneyYuan + "元");
|
|
deviceIdList.forEach(deviceId -> {
|
//设备编号
|
parameters.put("deviceId", deviceId);
|
String signStr = signable.laBaSign(parameters, ACCESSKEYSECRET);
|
parameters.put("sign", signStr);
|
String jsonBody = JSONObject.toJSONString(parameters);
|
|
String result = null;
|
log.info("天域喇叭推送请求参数:{}", jsonBody);
|
HttpResponse response = HttpRequest.post(csUrl)
|
.contentType("application/json")
|
.body(jsonBody)
|
.execute();
|
// 获取响应结果
|
result = response.body();
|
log.info("天域喇叭推送返回值:{}", result);
|
});
|
return;
|
}
|
|
}
|