116 lines
3.6 KiB
Java
116 lines
3.6 KiB
Java
|
package com.zcloud.util;
|
||
|
|
||
|
import cn.hutool.http.HttpRequest;
|
||
|
import com.alibaba.fastjson.JSONArray;
|
||
|
import com.alibaba.fastjson.JSONObject;
|
||
|
import org.apache.commons.lang.ObjectUtils;
|
||
|
import org.apache.commons.lang.StringUtils;
|
||
|
import org.springframework.http.MediaType;
|
||
|
|
||
|
import java.text.ParseException;
|
||
|
import java.text.SimpleDateFormat;
|
||
|
import java.util.Date;
|
||
|
|
||
|
/**
|
||
|
* 重点工程发送短信工具类
|
||
|
*/
|
||
|
public class SendSmsUtil {
|
||
|
|
||
|
private static String USERNAME = "qhdzyhy";
|
||
|
|
||
|
private static String PASSWORD = "3ba40593f514f0c1ebdfc278dddfc9ce";
|
||
|
|
||
|
private static String SIGNATURE = "【秦港双控】";
|
||
|
|
||
|
private static String URL = "https://api.mix2.zthysms.com/v2/sendSmsTp";
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 发送短信
|
||
|
* @param records
|
||
|
* @param time 发送时间 为空或小于当前时间则立即发送
|
||
|
* records格式实例 records是 JSONArray 里边的内容通过调用下方方法getRecords获取 JSONObject 定义一个JSONArray后 put进去即可
|
||
|
* "records":[
|
||
|
* {
|
||
|
* "mobile":"138****0000",
|
||
|
* "tpContent":{
|
||
|
* "var1":"变量1",
|
||
|
* "var2":"变量2"
|
||
|
* }
|
||
|
* },
|
||
|
* {
|
||
|
* "mobile":"138****0001",
|
||
|
* "tpContent":{
|
||
|
* "var1":"变量2",
|
||
|
* "var2":"变量2"
|
||
|
* }
|
||
|
* }
|
||
|
* ]
|
||
|
*/
|
||
|
public static void sendSms(String tpId,JSONArray records ,String time) throws ParseException {
|
||
|
JSONObject json = new JSONObject();
|
||
|
Long tKey = System.currentTimeMillis()/1000;
|
||
|
String passWord = MD5.md5(PASSWORD+tKey);
|
||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||
|
//扔参数
|
||
|
json.put("username",USERNAME);
|
||
|
json.put("password",passWord);
|
||
|
json.put("tKey",tKey);
|
||
|
json.put("signature",SIGNATURE);
|
||
|
json.put("tpId",tpId);
|
||
|
if(StringUtils.isNotBlank(time)){
|
||
|
if(sdf.parse(time).after(new Date())){
|
||
|
json.put("time",time);
|
||
|
}
|
||
|
}
|
||
|
json.put("records",records);
|
||
|
System.out.println(json.toJSONString());
|
||
|
String result = HttpRequest.post(URL)
|
||
|
.timeout(60000)
|
||
|
.body(json.toJSONString(), MediaType.APPLICATION_JSON_UTF8_VALUE).execute().body();
|
||
|
System.out.println(result);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* 封装要发送的电话以及要替换的内容
|
||
|
* @param mobile 手机号
|
||
|
* @param tpContent 替换内容
|
||
|
* @return
|
||
|
* 格式实例 var1表示要替换的内容 与要替换的内容保持一致即可 变量1表示替换的内容
|
||
|
* {
|
||
|
* "mobile":"138****0000",
|
||
|
* "tpContent":{
|
||
|
* "var1":"变量1",
|
||
|
* "var2":"变量2"
|
||
|
* }
|
||
|
* }
|
||
|
*/
|
||
|
public static JSONObject getRecords(String mobile, JSONObject tpContent ){
|
||
|
JSONObject json = new JSONObject();
|
||
|
json.put("mobile",mobile);
|
||
|
if(ObjectUtils.hashCode(tpContent)!=0){
|
||
|
json.put("tpContent",tpContent);
|
||
|
}
|
||
|
return json;
|
||
|
|
||
|
}//d22f8a5d4a35b3761dc9525186e652a0
|
||
|
|
||
|
//测试接口
|
||
|
public static void main(String[] args) throws ParseException {
|
||
|
JSONArray jsonArray = new JSONArray();
|
||
|
|
||
|
//接受返回结果
|
||
|
JSONObject records = new JSONObject();
|
||
|
//定义替换参数
|
||
|
//JSONObject tpContent = new JSONObject();
|
||
|
//tpContent.put("userName","卓云企业");
|
||
|
//tpContent.put("time","2023-09-21 15:56:20");
|
||
|
//records = getRecords("18617456701",tpContent);
|
||
|
jsonArray.add(records);
|
||
|
|
||
|
sendSms("null",jsonArray,null);
|
||
|
}
|
||
|
|
||
|
}
|