mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-06 17:08:40 +08:00
commit
cb4ce43198
@ -2,7 +2,6 @@ package org.dromara.sms4j.api.smsProxy;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.api.SmsBlend;
|
||||
|
||||
import org.dromara.sms4j.comm.config.SmsConfig;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
|
||||
|
||||
@ -1,20 +1,19 @@
|
||||
package org.dromara.sms4j.autoimmit.aop;
|
||||
|
||||
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
import org.dromara.sms4j.comm.config.SmsConfig;
|
||||
import org.dromara.sms4j.autoimmit.utils.RedisUtils;
|
||||
import org.dromara.sms4j.comm.utils.SmsUtil;
|
||||
import org.dromara.sms4j.comm.utils.TimeExpiredPoolCache;
|
||||
import org.dromara.sms4j.autoimmit.utils.SpringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.aspectj.lang.ProceedingJoinPoint;
|
||||
import org.aspectj.lang.annotation.Around;
|
||||
import org.aspectj.lang.annotation.Aspect;
|
||||
import org.aspectj.lang.annotation.Pointcut;
|
||||
import org.dromara.sms4j.autoimmit.utils.RedisUtils;
|
||||
import org.dromara.sms4j.autoimmit.utils.SpringUtil;
|
||||
import org.dromara.sms4j.comm.config.SmsConfig;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
import org.dromara.sms4j.comm.utils.SmsUtil;
|
||||
import org.dromara.sms4j.comm.utils.TimeExpiredPoolCache;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.ArrayList;
|
||||
|
||||
@Aspect
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package org.dromara.sms4j.autoimmit.config;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.api.smsProxy.SmsInvocationHandler;
|
||||
import org.dromara.sms4j.autoimmit.aop.AopAdvice;
|
||||
import org.dromara.sms4j.autoimmit.aop.RestrictedProcessImpl;
|
||||
@ -12,7 +13,6 @@ import org.dromara.sms4j.comm.config.SmsSqlConfig;
|
||||
import org.dromara.sms4j.comm.constant.Constant;
|
||||
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
|
||||
import org.dromara.sms4j.comm.factory.BeanFactory;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.core.SupplierSqlConfig;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
package org.dromara.sms4j.autoimmit.config;
|
||||
|
||||
import org.dromara.sms4j.ctyun.config.CtyunConfig;
|
||||
import org.dromara.sms4j.emay.config.EmayConfig;
|
||||
import org.dromara.sms4j.aliyun.config.AlibabaConfig;
|
||||
import org.dromara.sms4j.cloopen.config.CloopenConfig;
|
||||
import org.dromara.sms4j.core.config.SupplierFactory;
|
||||
import org.dromara.sms4j.ctyun.config.CtyunConfig;
|
||||
import org.dromara.sms4j.emay.config.EmayConfig;
|
||||
import org.dromara.sms4j.huawei.config.HuaweiConfig;
|
||||
import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
|
||||
import org.dromara.sms4j.tencent.config.TencentConfig;
|
||||
|
||||
@ -8,7 +8,11 @@ import org.springframework.data.redis.core.StringRedisTemplate;
|
||||
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
|
||||
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
package org.dromara.sms4j.comm.config;
|
||||
|
||||
|
||||
import org.dromara.sms4j.comm.enumerate.ConfigType;
|
||||
import lombok.Data;
|
||||
import org.dromara.sms4j.comm.enumerate.ConfigType;
|
||||
|
||||
@Data
|
||||
public class SmsConfig {
|
||||
|
||||
@ -1,9 +1,6 @@
|
||||
package org.dromara.sms4j.comm.constant;
|
||||
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
/**
|
||||
* Constant
|
||||
* <p> 短信应用常量
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package org.dromara.sms4j.comm.delayedTime;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
/**
|
||||
* <p>类名: DelayedTime
|
||||
|
||||
@ -5,7 +5,11 @@ import org.dromara.sms4j.comm.config.SmsSqlConfig;
|
||||
import org.dromara.sms4j.comm.exception.SmsSqlException;
|
||||
import org.dromara.sms4j.comm.factory.BeanFactory;
|
||||
|
||||
import java.sql.*;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@ -2,17 +2,12 @@ package org.dromara.sms4j.comm.utils;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.RandomUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
/**
|
||||
* @author wind
|
||||
|
||||
@ -2,7 +2,6 @@ package org.dromara.sms4j.core;
|
||||
|
||||
import org.dromara.sms4j.aliyun.config.AlibabaConfig;
|
||||
import org.dromara.sms4j.cloopen.config.CloopenConfig;
|
||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||
import org.dromara.sms4j.comm.utils.JDBCTool;
|
||||
import org.dromara.sms4j.comm.utils.SmsUtil;
|
||||
import org.dromara.sms4j.core.config.SupplierFactory;
|
||||
@ -10,6 +9,7 @@ import org.dromara.sms4j.ctyun.config.CtyunConfig;
|
||||
import org.dromara.sms4j.emay.config.EmayConfig;
|
||||
import org.dromara.sms4j.huawei.config.HuaweiConfig;
|
||||
import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
|
||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||
import org.dromara.sms4j.tencent.config.TencentConfig;
|
||||
import org.dromara.sms4j.unisms.config.UniConfig;
|
||||
import org.dromara.sms4j.yunpian.config.YunpianConfig;
|
||||
|
||||
@ -5,17 +5,17 @@ import org.dromara.sms4j.aliyun.config.AlibabaFactory;
|
||||
import org.dromara.sms4j.api.universal.SupplierConfig;
|
||||
import org.dromara.sms4j.cloopen.config.CloopenConfig;
|
||||
import org.dromara.sms4j.cloopen.config.CloopenFactory;
|
||||
import org.dromara.sms4j.ctyun.config.CtyunFactory;
|
||||
import org.dromara.sms4j.emay.config.EmayFactory;
|
||||
import org.dromara.sms4j.huawei.config.HuaweiFactory;
|
||||
import org.dromara.sms4j.jdcloud.config.JdCloudFactory;
|
||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
import org.dromara.sms4j.core.factory.SmsFactory;
|
||||
import org.dromara.sms4j.ctyun.config.CtyunConfig;
|
||||
import org.dromara.sms4j.ctyun.config.CtyunFactory;
|
||||
import org.dromara.sms4j.emay.config.EmayConfig;
|
||||
import org.dromara.sms4j.emay.config.EmayFactory;
|
||||
import org.dromara.sms4j.huawei.config.HuaweiConfig;
|
||||
import org.dromara.sms4j.huawei.config.HuaweiFactory;
|
||||
import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
|
||||
import org.dromara.sms4j.jdcloud.config.JdCloudFactory;
|
||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||
import org.dromara.sms4j.tencent.config.TencentConfig;
|
||||
import org.dromara.sms4j.tencent.config.TencentFactory;
|
||||
import org.dromara.sms4j.unisms.config.UniConfig;
|
||||
|
||||
@ -2,7 +2,8 @@ package org.dromara.sms4j.core.load;
|
||||
|
||||
import org.dromara.sms4j.api.SmsBlend;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* SmsLoad
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package org.dromara.sms4j.aliyun.service;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.aliyun.config.AlibabaConfig;
|
||||
import org.dromara.sms4j.aliyun.utils.AliyunUtils;
|
||||
@ -19,6 +19,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
/**
|
||||
* <p>类名: AlibabaSmsImpl
|
||||
* <p>说明: 阿里云短信实现
|
||||
*
|
||||
* @author :Wind
|
||||
* 2023/3/26 17:16
|
||||
**/
|
||||
@ -31,6 +32,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend {
|
||||
/**
|
||||
* AlibabaSmsImpl
|
||||
* <p>构造器,用于构造短信实现模块
|
||||
*
|
||||
* @author :Wind
|
||||
*/
|
||||
public AlibabaSmsImpl(AlibabaConfig alibabaSmsConfig, Executor pool, DelayedTime delayedTime) {
|
||||
@ -49,7 +51,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend {
|
||||
@Override
|
||||
@Restricted
|
||||
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
|
||||
String messageStr = JSON.toJSONString(messages);
|
||||
String messageStr = JSONUtil.toJsonStr(messages);
|
||||
return getSmsResponse(phone, messageStr, templateId);
|
||||
}
|
||||
|
||||
@ -64,7 +66,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend {
|
||||
@Override
|
||||
@Restricted
|
||||
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
|
||||
String messageStr = JSON.toJSONString(messages);
|
||||
String messageStr = JSONUtil.toJsonStr(messages);
|
||||
return getSmsResponse(arrayToString(phones), messageStr, templateId);
|
||||
}
|
||||
|
||||
@ -97,14 +99,14 @@ public class AlibabaSmsImpl extends AbstractSmsBlend {
|
||||
|
||||
private static SmsResponse getResponse(Map map) {
|
||||
SmsResponse smsResponse = new SmsResponse();
|
||||
if (map == null){
|
||||
if (map == null) {
|
||||
smsResponse.setErrorCode("500");
|
||||
smsResponse.setErrMessage("aliyun send sms response is null.check param");
|
||||
return smsResponse;
|
||||
}
|
||||
smsResponse.setCode((String) map.get("Code"));
|
||||
smsResponse.setMessage((String) map.get("Message"));
|
||||
if ("OK".equals(smsResponse.getCode())){
|
||||
if ("OK".equals(smsResponse.getCode())) {
|
||||
smsResponse.setBizId((String) map.get("BizId"));
|
||||
}
|
||||
return smsResponse;
|
||||
|
||||
@ -8,7 +8,13 @@ import org.dromara.sms4j.comm.constant.Constant;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map;
|
||||
import java.util.SimpleTimeZone;
|
||||
import java.util.TreeMap;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @author Richard
|
||||
|
||||
@ -12,7 +12,10 @@ import org.dromara.sms4j.cloopen.util.CloopenHelper;
|
||||
import org.dromara.sms4j.comm.annotation.Restricted;
|
||||
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
/**
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package org.dromara.sms4j.ctyun.service;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.api.AbstractSmsBlend;
|
||||
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||
@ -19,6 +19,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
||||
/**
|
||||
* <p>类名: CtyunSmsImpl
|
||||
* <p>说明: 天翼云短信实现
|
||||
*
|
||||
* @author :bleachhtred
|
||||
* 2023/5/12 15:06
|
||||
**/
|
||||
@ -29,7 +30,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend {
|
||||
|
||||
|
||||
public CtyunSmsImpl(CtyunConfig ctyunConfig, Executor pool, DelayedTime delayedTime) {
|
||||
super(pool,delayedTime);
|
||||
super(pool, delayedTime);
|
||||
this.ctyunConfig = ctyunConfig;
|
||||
}
|
||||
|
||||
@ -44,7 +45,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend {
|
||||
@Override
|
||||
@Restricted
|
||||
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
|
||||
String messageStr = JSON.toJSONString(messages);
|
||||
String messageStr = JSONUtil.toJsonStr(messages);
|
||||
return getSmsResponse(phone, messageStr, templateId);
|
||||
}
|
||||
|
||||
@ -59,7 +60,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend {
|
||||
@Override
|
||||
@Restricted
|
||||
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
|
||||
String messageStr = JSON.toJSONString(messages);
|
||||
String messageStr = JSONUtil.toJsonStr(messages);
|
||||
return getSmsResponse(arrayToString(phones), messageStr, templateId);
|
||||
}
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ package org.dromara.sms4j.ctyun.utils;
|
||||
|
||||
import cn.hutool.crypto.digest.HMac;
|
||||
import cn.hutool.crypto.digest.HmacAlgorithm;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.AccessLevel;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
@ -12,7 +12,12 @@ import java.nio.charset.StandardCharsets;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.Base64;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||
@ -75,7 +80,7 @@ public class CtyunUtils {
|
||||
paramMap.put("signName", ctyunConfig.getSignature());
|
||||
paramMap.put("templateParam", message);
|
||||
paramMap.put("templateCode", templateId);
|
||||
return JSONObject.toJSONString(paramMap);
|
||||
return JSONUtil.toJsonStr(paramMap);
|
||||
}
|
||||
|
||||
private static String toHex(byte[] data) {
|
||||
|
||||
@ -1,18 +1,21 @@
|
||||
package org.dromara.sms4j.emay.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.dromara.sms4j.api.AbstractSmsBlend;
|
||||
import org.dromara.sms4j.comm.utils.SmsUtil;
|
||||
import org.dromara.sms4j.emay.config.EmayConfig;
|
||||
import org.dromara.sms4j.emay.util.EmayBuilder;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.api.AbstractSmsBlend;
|
||||
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||
import org.dromara.sms4j.comm.annotation.Restricted;
|
||||
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
import org.dromara.sms4j.comm.utils.SmsUtil;
|
||||
import org.dromara.sms4j.emay.config.EmayConfig;
|
||||
import org.dromara.sms4j.emay.util.EmayBuilder;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
@ -103,7 +106,7 @@ public class EmaySmsImpl extends AbstractSmsBlend {
|
||||
smsResponse.setErrMessage("emay send sms response is null.check param");
|
||||
return smsResponse;
|
||||
}
|
||||
String code = execute.getString("code");
|
||||
String code = execute.getStr("code");
|
||||
if (SmsUtil.isEmpty(code)) {
|
||||
smsResponse.setErrorCode("emay response code is null");
|
||||
smsResponse.setErrMessage("emay is error");
|
||||
@ -112,7 +115,7 @@ public class EmaySmsImpl extends AbstractSmsBlend {
|
||||
if ("success".equalsIgnoreCase(code)) {
|
||||
JSONArray data = execute.getJSONArray("data");
|
||||
JSONObject result = (JSONObject) data.get(0);
|
||||
String smsId = result.getString("smsId");
|
||||
String smsId = result.getStr("smsId");
|
||||
smsResponse.setBizId(smsId);
|
||||
}
|
||||
smsResponse.setData(execute);
|
||||
|
||||
@ -2,8 +2,6 @@ package org.dromara.sms4j.huawei.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* SmsId
|
||||
* <p> 短信ID列表
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package org.dromara.sms4j.huawei.service;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.api.AbstractSmsBlend;
|
||||
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||
import org.dromara.sms4j.comm.annotation.Restricted;
|
||||
import org.dromara.sms4j.comm.constant.Constant;
|
||||
@ -7,10 +9,12 @@ import org.dromara.sms4j.comm.delayedTime.DelayedTime;
|
||||
import org.dromara.sms4j.huawei.config.HuaweiConfig;
|
||||
import org.dromara.sms4j.huawei.entity.HuaweiResponse;
|
||||
import org.dromara.sms4j.huawei.utils.HuaweiBuilder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.api.AbstractSmsBlend;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import static org.dromara.sms4j.huawei.utils.HuaweiBuilder.listToString;
|
||||
|
||||
@ -14,7 +14,12 @@ import java.security.cert.CertificateException;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.Base64;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public class HuaweiBuilder {
|
||||
private HuaweiBuilder(){}
|
||||
|
||||
@ -2,7 +2,6 @@ package org.dromara.sms4j.provider.base;
|
||||
|
||||
import org.dromara.sms4j.api.SmsBlend;
|
||||
import org.dromara.sms4j.api.universal.SupplierConfig;
|
||||
import org.dromara.sms4j.comm.config.BaseConfig;
|
||||
|
||||
/**
|
||||
* AlibabaSmsConfig
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package org.dromara.sms4j.tencent.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import cn.hutool.json.JSONArray;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.api.AbstractSmsBlend;
|
||||
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||
@ -12,7 +12,10 @@ import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
import org.dromara.sms4j.tencent.config.TencentConfig;
|
||||
import org.dromara.sms4j.tencent.utils.TencentUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@Slf4j
|
||||
@ -91,9 +94,9 @@ public class TencentSmsImpl extends AbstractSmsBlend {
|
||||
JSONObject jsonBody = res.get(JSONObject.class);
|
||||
JSONObject response = jsonBody.getJSONObject("Response");
|
||||
JSONArray sendStatusSet = response.getJSONArray("SendStatusSet");
|
||||
smsResponse.setBizId(sendStatusSet.getJSONObject(0).getString("SerialNo"));
|
||||
smsResponse.setMessage(sendStatusSet.getJSONObject(0).getString("Message"));
|
||||
smsResponse.setCode(sendStatusSet.getJSONObject(0).getString("Code"));
|
||||
smsResponse.setBizId(sendStatusSet.getJSONObject(0).getStr("SerialNo"));
|
||||
smsResponse.setMessage(sendStatusSet.getJSONObject(0).getStr("Message"));
|
||||
smsResponse.setCode(sendStatusSet.getJSONObject(0).getStr("Code"));
|
||||
}))
|
||||
.onError((ex, req, res) -> {
|
||||
JSONObject jsonBody = res.get(JSONObject.class);
|
||||
@ -103,8 +106,8 @@ public class TencentSmsImpl extends AbstractSmsBlend {
|
||||
} else {
|
||||
JSONObject response = jsonBody.getJSONObject("Response");
|
||||
JSONArray sendStatusSet = response.getJSONArray("SendStatusSet");
|
||||
smsResponse.setErrMessage(sendStatusSet.getJSONObject(0).getString("Message"));
|
||||
smsResponse.setErrorCode(sendStatusSet.getJSONObject(0).getString("Code"));
|
||||
smsResponse.setErrMessage(sendStatusSet.getJSONObject(0).getStr("Message"));
|
||||
smsResponse.setErrorCode(sendStatusSet.getJSONObject(0).getStr("Code"));
|
||||
}
|
||||
})
|
||||
.execute();
|
||||
|
||||
@ -2,7 +2,7 @@ package org.dromara.sms4j.tencent.utils;
|
||||
|
||||
import cn.hutool.crypto.digest.HMac;
|
||||
import cn.hutool.crypto.digest.HmacAlgorithm;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.tencent.config.TencentConfig;
|
||||
|
||||
@ -71,7 +71,7 @@ public class TencentUtils {
|
||||
params.put("SignName", tencentConfig.getSignature());
|
||||
params.put("TemplateId", templateId);
|
||||
params.put("TemplateParamSet", messages);
|
||||
String payload = JSON.toJSONString(params);
|
||||
String payload = JSONUtil.toJsonStr(params);
|
||||
String hashedRequestPayload = sha256Hex(payload);
|
||||
String canonicalRequest = HTTP_REQUEST_METHOD + "\n" + canonicalUri + "\n" + canonicalQueryString + "\n"
|
||||
+ canonicalHeaders + "\n" + signedHeaders + "\n" + hashedRequestPayload;
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package org.dromara.sms4j.unisms.core;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.dtflys.forest.config.ForestConfiguration;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
import org.dromara.sms4j.comm.factory.BeanFactory;
|
||||
@ -79,6 +79,7 @@ public class UniClient {
|
||||
/**
|
||||
* request
|
||||
* <p>向 uni-sms发送请求
|
||||
*
|
||||
* @param action 接口名称
|
||||
* @author :Wind
|
||||
*/
|
||||
@ -91,21 +92,19 @@ public class UniClient {
|
||||
headers.put("User-Agent", USER_AGENT);
|
||||
headers.put("Content-Type", "application/json;charset=utf-8");
|
||||
headers.put("Accept", "application/json");
|
||||
return new UniResponse(
|
||||
JSONObject.parseObject(
|
||||
http.post(this.endpoint)
|
||||
.addHeader(headers)
|
||||
.addQuery(this.sign(query))
|
||||
.addBody(JSONObject.toJSONString(data))
|
||||
.successWhen(((req, res) -> {
|
||||
return res.noException() && // 请求过程没有异常
|
||||
res.statusIsNot(500); // 不能是 500
|
||||
}))
|
||||
.onError((ex, req, res) -> {
|
||||
throw new SmsBlendException(ex.getMessage());
|
||||
})
|
||||
.executeAsString()
|
||||
));
|
||||
String str = http.post(this.endpoint)
|
||||
.addHeader(headers)
|
||||
.addQuery(this.sign(query))
|
||||
.addBody(JSONUtil.toJsonStr(data))
|
||||
.successWhen(((req, res) -> {
|
||||
return res.noException() && // 请求过程没有异常
|
||||
res.statusIsNot(500); // 不能是 500
|
||||
}))
|
||||
.onError((ex, req, res) -> {
|
||||
throw new SmsBlendException(ex.getMessage());
|
||||
})
|
||||
.executeAsString();
|
||||
return new UniResponse(JSONUtil.parseObj(str));
|
||||
}
|
||||
|
||||
public static class Builder {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package org.dromara.sms4j.unisms.core;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
|
||||
import java.util.Objects;
|
||||
@ -22,23 +22,23 @@ public class UniResponse {
|
||||
*/
|
||||
public UniResponse(final JSONObject response) throws SmsBlendException {
|
||||
JSONObject body = response.getJSONObject("data");
|
||||
if (!Objects.isNull(body)){
|
||||
this.status = body.getJSONArray("messages").getJSONObject(0).getString("status");
|
||||
this.requestId = body.getJSONArray("messages").getJSONObject(0).getString("id");
|
||||
if (!Objects.isNull(body)) {
|
||||
this.status = body.getJSONArray("messages").getJSONObject(0).getStr("status");
|
||||
this.requestId = body.getJSONArray("messages").getJSONObject(0).getStr("id");
|
||||
this.raw = body;
|
||||
this.data = body;
|
||||
}
|
||||
if (this.status != "400") {
|
||||
String code = response.getString("code");
|
||||
String code = response.getStr("code");
|
||||
if (!"0".equals(code)) {
|
||||
this.message = response.getString("message");
|
||||
}else {
|
||||
this.message = body.getJSONArray("messages").getString(0);;
|
||||
this.message = response.getStr("message");
|
||||
} else {
|
||||
this.message = body.getJSONArray("messages").getStr(0);
|
||||
;
|
||||
}
|
||||
this.code = code;
|
||||
}
|
||||
else {
|
||||
throw new SmsBlendException(response.getString("message"), "-1");
|
||||
} else {
|
||||
throw new SmsBlendException(response.getStr("message"), "-1");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
package org.dromara.sms4j.unisms.service;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.api.AbstractSmsBlend;
|
||||
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||
import org.dromara.sms4j.comm.annotation.Restricted;
|
||||
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
import org.dromara.sms4j.unisms.config.UniConfig;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sms4j.unisms.core.Uni;
|
||||
import org.dromara.sms4j.unisms.core.UniResponse;
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
package org.dromara.sms4j.yunpian.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import org.dromara.sms4j.api.AbstractSmsBlend;
|
||||
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||
import org.dromara.sms4j.comm.annotation.Restricted;
|
||||
@ -9,7 +9,10 @@ import org.dromara.sms4j.comm.delayedTime.DelayedTime;
|
||||
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||
import org.dromara.sms4j.yunpian.config.YunpianConfig;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
@ -31,11 +34,11 @@ public class YunPianSmsImpl extends AbstractSmsBlend {
|
||||
smsResponse.setErrMessage("yunpian send sms response is null.check param");
|
||||
return smsResponse;
|
||||
}
|
||||
smsResponse.setCode(execute.getString("code"));
|
||||
smsResponse.setMessage(execute.getString("msg"));
|
||||
smsResponse.setBizId(execute.getString("sid"));
|
||||
if (execute.getInteger("code") != 0) {
|
||||
smsResponse.setErrMessage(execute.getString("msg"));
|
||||
smsResponse.setCode(execute.getStr("code"));
|
||||
smsResponse.setMessage(execute.getStr("msg"));
|
||||
smsResponse.setBizId(execute.getStr("sid"));
|
||||
if (execute.getInt("code") != 0) {
|
||||
smsResponse.setErrMessage(execute.getStr("msg"));
|
||||
}
|
||||
smsResponse.setData(execute);
|
||||
return smsResponse;
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
package org.dromara.sms4j.solon;
|
||||
|
||||
import org.dromara.sms4j.comm.annotation.Restricted;
|
||||
import org.dromara.sms4j.comm.factory.BeanFactory;
|
||||
import org.dromara.sms4j.solon.aop.AopAdvice;
|
||||
import org.dromara.sms4j.solon.config.SmsAutowiredConfig;
|
||||
import org.noear.solon.core.AopContext;
|
||||
|
||||
@ -11,7 +11,10 @@ import org.dromara.sms4j.core.SupplierSqlConfig;
|
||||
import org.dromara.sms4j.solon.utils.RedisUtils;
|
||||
import org.noear.solon.Solon;
|
||||
import org.noear.solon.Utils;
|
||||
import org.noear.solon.annotation.*;
|
||||
import org.noear.solon.annotation.Bean;
|
||||
import org.noear.solon.annotation.Condition;
|
||||
import org.noear.solon.annotation.Configuration;
|
||||
import org.noear.solon.annotation.Inject;
|
||||
import org.noear.solon.core.Props;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@ -4,7 +4,8 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.noear.solon.Solon;
|
||||
import org.redisson.api.RedissonClient;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
package org.dromara.sms4j.test;
|
||||
|
||||
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||
import org.dromara.sms4j.core.config.SupplierFactory;
|
||||
import org.dromara.sms4j.core.factory.SmsFactory;
|
||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||
import org.dromara.sms4j.unisms.config.UniConfig;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
@ -3,9 +3,10 @@ package org.dromara.sms4j.example;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||
import org.dromara.sms4j.comm.utils.SmsUtil;
|
||||
import org.dromara.sms4j.core.config.SupplierFactory;
|
||||
import org.dromara.sms4j.core.factory.SmsFactory;
|
||||
import org.dromara.sms4j.provider.enumerate.SupplierType;
|
||||
import org.dromara.sms4j.unisms.config.UniConfig;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
@ -35,11 +36,11 @@ class Sms4jTest {
|
||||
|
||||
@Test
|
||||
public void alibabaSmsTest() {
|
||||
String phone = "";
|
||||
String phone = "13546606929";
|
||||
if (StrUtil.isBlank(phone)) {
|
||||
return;
|
||||
}
|
||||
SmsResponse smsResponse = SmsFactory.createSmsBlend(SupplierType.ALIBABA).sendMessage(phone, "123456");
|
||||
SmsResponse smsResponse = SmsFactory.createSmsBlend(SupplierType.ALIBABA).sendMessage(phone, SmsUtil.getRandomInt(6));
|
||||
Assert.isTrue("OK".equals(smsResponse.getCode()));
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user