!114 I8INMR 其他厂商修复

Merge pull request !114 from handy/handy
This commit is contained in:
风如歌 2023-11-27 03:50:21 +00:00 committed by Gitee
commit d1068c66e1
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
20 changed files with 167 additions and 144 deletions

View File

@ -81,7 +81,7 @@ public final class HtmlUtil {
try { try {
inputStream.close(); inputStream.close();
} catch (IOException e) { } catch (IOException e) {
System.out.println(e); e.printStackTrace();
} }
} }
return data; return data;

View File

@ -10,7 +10,6 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.nio.Buffer;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.channels.Channels; import java.nio.channels.Channels;
import java.nio.channels.FileChannel; import java.nio.channels.FileChannel;

View File

@ -1,6 +1,5 @@
package org.dromara.sms4j.comm.utils; package org.dromara.sms4j.comm.utils;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.thread.ThreadUtil; import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.URLUtil; import cn.hutool.core.util.URLUtil;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
@ -9,8 +8,6 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
public class SmsHttpUtils { public class SmsHttpUtils {

View File

@ -81,7 +81,7 @@ public abstract class SmsFactory {
public static void createSmsBlend(SmsReadConfig smsReadConfig) { public static void createSmsBlend(SmsReadConfig smsReadConfig) {
List<BaseConfig> supplierConfigList = smsReadConfig.getSupplierConfigList(); List<BaseConfig> supplierConfigList = smsReadConfig.getSupplierConfigList();
supplierConfigList.forEach(supplierConfig -> { supplierConfigList.forEach(supplierConfig -> {
SmsBlend smsBlend = create((SupplierConfig)supplierConfig); SmsBlend smsBlend = create(supplierConfig);
register(smsBlend); register(smsBlend);
}); });
} }

View File

@ -90,18 +90,22 @@ public class AlibabaSmsImpl extends AbstractSmsBlend<AlibabaConfig> {
throw new SmsBlendException(e.getMessage()); throw new SmsBlendException(e.getMessage());
} }
log.debug("requestUrl {}", requestUrl); log.debug("requestUrl {}", requestUrl);
Map<String, String> headers = new LinkedHashMap<>(1);
headers.put("Content-Type", Constant.FROM_URLENCODED);
SmsResponse smsResponse;
try { try {
Map<String, String> headers = new LinkedHashMap<>(1); smsResponse = getResponse(http.postJson(requestUrl, headers, paramStr));
headers.put("Content-Type", Constant.FROM_URLENCODED); } catch (SmsBlendException e) {
SmsResponse smsResponse = getResponse(http.postJson(requestUrl, headers, paramStr)); smsResponse = new SmsResponse();
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ smsResponse.setSuccess(false);
retry = 0; smsResponse.setData(e.getMessage());
return smsResponse;
}
return requestRetry(phone, message, templateId);
}catch (SmsBlendException e){
return requestRetry(phone, message, templateId);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phone, message, templateId);
} }
private SmsResponse requestRetry(String phone, String message, String templateId) { private SmsResponse requestRetry(String phone, String message, String templateId) {

View File

@ -78,18 +78,21 @@ public class CtyunSmsImpl extends AbstractSmsBlend<CtyunConfig> {
throw new SmsBlendException(e.getMessage()); throw new SmsBlendException(e.getMessage());
} }
log.debug("requestUrl {}", requestUrl); log.debug("requestUrl {}", requestUrl);
SmsResponse smsResponse;
try { try {
SmsResponse smsResponse = getResponse(http.postJson(requestUrl, smsResponse = getResponse(http.postJson(requestUrl,
CtyunUtils.signHeader(paramStr, getConfig().getAccessKeyId(), getConfig().getAccessKeySecret()), CtyunUtils.signHeader(paramStr, getConfig().getAccessKeyId(), getConfig().getAccessKeySecret()),
paramStr)); paramStr));
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ } catch (SmsBlendException e) {
retry = 0; smsResponse = new SmsResponse();
return smsResponse; smsResponse.setSuccess(false);
} smsResponse.setData(e.getMessage());
return requestRetry(phone, message, templateId);
}catch (SmsBlendException e){
return requestRetry(phone, message, templateId);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phone, message, templateId);
} }
private SmsResponse requestRetry(String phone, String message, String templateId) { private SmsResponse requestRetry(String phone, String message, String templateId) {

View File

@ -44,18 +44,22 @@ public class EmaySmsImpl extends AbstractSmsBlend<EmayConfig> {
public SmsResponse sendMessage(String phone, String message) { public SmsResponse sendMessage(String phone, String message) {
String url = getConfig().getRequestUrl(); String url = getConfig().getRequestUrl();
Map<String, Object> params = EmayBuilder.buildRequestBody(getConfig().getAccessKeyId(), getConfig().getAccessKeySecret(), phone, message); Map<String, Object> params = EmayBuilder.buildRequestBody(getConfig().getAccessKeyId(), getConfig().getAccessKeySecret(), phone, message);
Map<String, String> headers = new LinkedHashMap<>(1);
headers.put("Content-Type", Constant.FROM_URLENCODED);
SmsResponse smsResponse;
try { try {
Map<String, String> headers = new LinkedHashMap<>(1); smsResponse = getResponse(http.postUrl(url, headers, params));
headers.put("Content-Type", Constant.FROM_URLENCODED); } catch (SmsBlendException e) {
SmsResponse smsResponse = getResponse(http.postUrl(url, headers, params)); smsResponse = new SmsResponse();
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ smsResponse.setSuccess(false);
retry = 0; smsResponse.setData(e.getMessage());
return smsResponse;
}
return requestRetry(phone, message);
}catch (SmsBlendException e){
return requestRetry(phone, message);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phone, message);
} }
private SmsResponse requestRetry(String phone, String message) { private SmsResponse requestRetry(String phone, String message) {

View File

@ -55,20 +55,24 @@ public class HuaweiSmsImpl extends AbstractSmsBlend<HuaweiConfig> {
} }
String mess = listToString(list); String mess = listToString(list);
String requestBody = HuaweiBuilder.buildRequestBody(getConfig().getSender(), phone, templateId, mess, getConfig().getStatusCallBack(), getConfig().getSignature()); String requestBody = HuaweiBuilder.buildRequestBody(getConfig().getSender(), phone, templateId, mess, getConfig().getStatusCallBack(), getConfig().getSignature());
Map<String, String> headers = new LinkedHashMap<>(3);
headers.put("Authorization", Constant.HUAWEI_AUTH_HEADER_VALUE);
headers.put("X-WSSE", HuaweiBuilder.buildWsseHeader(getConfig().getAccessKeyId(), getConfig().getAccessKeySecret()));
headers.put("Content-Type", Constant.FROM_URLENCODED);
SmsResponse smsResponse;
try { try {
Map<String, String> headers = new LinkedHashMap<>(3); smsResponse = getResponse(http.postJson(url, headers, requestBody));
headers.put("Authorization", Constant.HUAWEI_AUTH_HEADER_VALUE); } catch (SmsBlendException e) {
headers.put("X-WSSE", HuaweiBuilder.buildWsseHeader(getConfig().getAccessKeyId(), getConfig().getAccessKeySecret())); smsResponse = new SmsResponse();
headers.put("Content-Type", Constant.FROM_URLENCODED); smsResponse.setSuccess(false);
SmsResponse smsResponse = getResponse(http.postJson(url, headers, requestBody)); smsResponse.setData(e.getMessage());
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){
retry = 0;
return smsResponse;
}
return requestRetry(phone, templateId, messages);
}catch (SmsBlendException e){
return requestRetry(phone, templateId, messages);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phone, templateId, messages);
} }
private SmsResponse requestRetry(String phone, String templateId, LinkedHashMap<String, String> messages) { private SmsResponse requestRetry(String phone, String templateId, LinkedHashMap<String, String> messages) {

View File

@ -79,17 +79,20 @@ public class JdCloudSmsImpl extends AbstractSmsBlend<JdCloudConfig> {
throw new SmsBlendException(e.getMessage()); throw new SmsBlendException(e.getMessage());
} }
BatchSendResult result = client.batchSend(request).getResult();
SmsResponse smsResponse;
try { try {
BatchSendResult result = client.batchSend(request).getResult(); smsResponse = getSmsResponse(result);
SmsResponse smsResponse = getSmsResponse(result); } catch (SmsBlendException e) {
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ smsResponse = new SmsResponse();
retry = 0; smsResponse.setSuccess(false);
return smsResponse; smsResponse.setData(e.getMessage());
}
return requestRetry(phones, templateId, messages);
}catch (SmsBlendException e){
return requestRetry(phones, templateId, messages);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phones, templateId, messages);
} }
private SmsResponse requestRetry(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { private SmsResponse requestRetry(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {

View File

@ -108,22 +108,25 @@ public class NeteaseSmsImpl extends AbstractSmsBlend<NeteaseConfig> {
body.put("params", message); body.put("params", message);
body.put("needUp", getConfig().getNeedUp()); body.put("needUp", getConfig().getNeedUp());
Map<String, String> headers = new LinkedHashMap<>(5);
headers.put("Content-Type", Constant.FROM_URLENCODED);
headers.put("AppKey", getConfig().getAccessKeyId());
headers.put("Nonce", nonce);
headers.put("CurTime", curTime);
headers.put("CheckSum", checkSum);
SmsResponse smsResponse;
try { try {
Map<String, String> headers = new LinkedHashMap<>(5); smsResponse = getResponse(http.postJson(requestUrl, headers, body));
headers.put("Content-Type", Constant.FROM_URLENCODED); } catch (SmsBlendException e) {
headers.put("AppKey", getConfig().getAccessKeyId()); smsResponse = new SmsResponse();
headers.put("Nonce", nonce); smsResponse.setSuccess(false);
headers.put("CurTime", curTime); smsResponse.setData(e.getMessage());
headers.put("CheckSum", checkSum);
SmsResponse smsResponse = getResponse(http.postJson(requestUrl, headers, body));
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){
retry = 0;
return smsResponse;
}
return requestRetry(requestUrl, phones, message, templateId);
}catch (SmsBlendException e){
return requestRetry(requestUrl, phones, message, templateId);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(requestUrl, phones, message, templateId);
} }
private SmsResponse requestRetry(String requestUrl, List<String> phones, String message, String templateId) { private SmsResponse requestRetry(String requestUrl, List<String> phones, String message, String templateId) {

View File

@ -96,16 +96,19 @@ public class TencentSmsImpl extends AbstractSmsBlend<TencentConfig> {
getConfig().getSignature(), templateId, messages); getConfig().getSignature(), templateId, messages);
String url = Constant.HTTPS_PREFIX + getConfig().getRequestUrl(); String url = Constant.HTTPS_PREFIX + getConfig().getRequestUrl();
SmsResponse smsResponse;
try { try {
SmsResponse smsResponse = getResponse(http.postJson(url, headsMap, requestBody)); smsResponse = getResponse(http.postJson(url, headsMap, requestBody));
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ } catch (SmsBlendException e) {
retry = 0; smsResponse = new SmsResponse();
return smsResponse; smsResponse.setSuccess(false);
} smsResponse.setData(e.getMessage());
return requestRetry(phones, messages, templateId);
}catch (SmsBlendException e){
return requestRetry(phones, messages, templateId);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phones, messages, templateId);
} }
private SmsResponse requestRetry(String[] phones, String[] messages, String templateId) { private SmsResponse requestRetry(String[] phones, String[] messages, String templateId) {

View File

@ -89,17 +89,18 @@ public class UniClient {
headers.put("Accept", Constant.ACCEPT); headers.put("Accept", Constant.ACCEPT);
String url = this.endpoint + "?action=" + action + "&accessKeyId=" + this.accessKeyId; String url = this.endpoint + "?action=" + action + "&accessKeyId=" + this.accessKeyId;
UniResponse smsResponse;
try { try {
UniResponse smsResponse = new UniResponse(http.postJson(url, headers, data)); smsResponse = new UniResponse(http.postJson(url, headers, data));
if("Success".equals(smsResponse.message) || retry == maxRetries){ } catch (SmsBlendException e) {
retry = 0; smsResponse = new UniResponse();
return smsResponse; smsResponse.message = "Error";
}
return requestRetry(action, data);
}catch (SmsBlendException e){
return requestRetry(action, data);
} }
if ("Success".equals(smsResponse.message) || retry == maxRetries) {
retry = 0;
return smsResponse;
}
return requestRetry(action, data);
} }
private UniResponse requestRetry(String action, Map<String, Object> data) { private UniResponse requestRetry(String action, Map<String, Object> data) {

View File

@ -14,6 +14,8 @@ public class UniResponse {
public JSONObject data = null; public JSONObject data = null;
public Object raw; public Object raw;
public UniResponse(){}
/** /**
* Create a new Uni Response. * Create a new Uni Response.
* *

View File

@ -55,16 +55,19 @@ public class YunPianSmsImpl extends AbstractSmsBlend<YunpianConfig> {
Map<String, Object> body = setBody(phone, message, null, getConfig().getTemplateId()); Map<String, Object> body = setBody(phone, message, null, getConfig().getTemplateId());
Map<String, String> headers = getHeaders(); Map<String, String> headers = getHeaders();
SmsResponse smsResponse;
try { try {
SmsResponse smsResponse = getResponse(http.postFrom(Constant.YUNPIAN_URL + "/sms/tpl_single_send.json", headers, body)); smsResponse = getResponse(http.postFrom(Constant.YUNPIAN_URL + "/sms/tpl_single_send.json", headers, body));
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ } catch (SmsBlendException e) {
retry = 0; smsResponse = new SmsResponse();
return smsResponse; smsResponse.setSuccess(false);
} smsResponse.setData(e.getMessage());
return requestRetry(phone, message);
}catch (SmsBlendException e){
return requestRetry(phone, message);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phone, message);
} }
private SmsResponse requestRetry(String phone, String message) { private SmsResponse requestRetry(String phone, String message) {
@ -79,16 +82,17 @@ public class YunPianSmsImpl extends AbstractSmsBlend<YunpianConfig> {
Map<String, Object> body = setBody(phone, "", messages, templateId); Map<String, Object> body = setBody(phone, "", messages, templateId);
Map<String, String> headers = getHeaders(); Map<String, String> headers = getHeaders();
SmsResponse smsResponse;
try { try {
SmsResponse smsResponse = getResponse(http.postFrom(Constant.YUNPIAN_URL + "/sms/tpl_single_send.json", headers, body)); smsResponse = getResponse(http.postFrom(Constant.YUNPIAN_URL + "/sms/tpl_single_send.json", headers, body));
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ } catch (SmsBlendException e) {
retry = 0;
return smsResponse;
}
return requestRetry(phone, templateId, messages);
}catch (SmsBlendException e){
return requestRetry(phone, templateId, messages); return requestRetry(phone, templateId, messages);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phone, templateId, messages);
} }
private SmsResponse requestRetry(String phone, String templateId, LinkedHashMap<String, String> messages) { private SmsResponse requestRetry(String phone, String templateId, LinkedHashMap<String, String> messages) {
@ -138,9 +142,9 @@ public class YunPianSmsImpl extends AbstractSmsBlend<YunpianConfig> {
body.put("apikey", getConfig().getAccessKeyId()); body.put("apikey", getConfig().getAccessKeyId());
body.put("mobile", phone); body.put("mobile", phone);
body.put("tpl_id", tplId); body.put("tpl_id", tplId);
if (message!=null && !message.isEmpty()){ if (message != null && !message.isEmpty()) {
body.put("tpl_value", formattingMap(message)); body.put("tpl_value", formattingMap(message));
}else { } else {
body.put("tpl_value", ""); body.put("tpl_value", "");
} }
if (getConfig().getCallbackUrl() != null && !getConfig().getCallbackUrl().isEmpty()) { if (getConfig().getCallbackUrl() != null && !getConfig().getCallbackUrl().isEmpty()) {

View File

@ -130,18 +130,21 @@ public class ZhutongSmsImpl extends AbstractSmsBlend<ZhutongConfig> {
//内容 //内容
json.put("content", content); json.put("content", content);
Map<String, String> headers = new LinkedHashMap<>(1);
headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8);
SmsResponse smsResponse;
try { try {
Map<String, String> headers = new LinkedHashMap<>(1); smsResponse = getResponse(http.postJson(requestUrl, headers, json));
headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8); } catch (SmsBlendException e) {
SmsResponse smsResponse = getResponse(http.postJson(requestUrl, headers, json)); smsResponse = new SmsResponse();
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ smsResponse.setSuccess(false);
retry = 0; smsResponse.setData(e.getMessage());
return smsResponse;
}
return requestRetry(phones, content);
}catch (SmsBlendException e){
return requestRetry(phones, content);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phones, content);
} }
private SmsResponse requestRetry(List<String> phones, String content) { private SmsResponse requestRetry(List<String> phones, String content) {
@ -215,18 +218,21 @@ public class ZhutongSmsImpl extends AbstractSmsBlend<ZhutongConfig> {
} }
requestJson.set("records", records); requestJson.set("records", records);
Map<String, String> headers = new LinkedHashMap<>(1);
headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8);
SmsResponse smsResponse;
try { try {
Map<String, String> headers = new LinkedHashMap<>(1); smsResponse = getResponse(http.postJson(requestUrl, headers, requestJson.toString()));
headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8); } catch (SmsBlendException e) {
SmsResponse smsResponse = getResponse(http.postJson(requestUrl, headers, requestJson.toString())); smsResponse = new SmsResponse();
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ smsResponse.setSuccess(false);
retry = 0; smsResponse.setData(e.getMessage());
return smsResponse;
}
return requestRetry(templateId, phones, messages);
}catch (SmsBlendException e){
return requestRetry(templateId, phones, messages);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(templateId, phones, messages);
} }
private SmsResponse requestRetry(String templateId, List<String> phones, LinkedHashMap<String, String> messages) { private SmsResponse requestRetry(String templateId, List<String> phones, LinkedHashMap<String, String> messages) {

View File

@ -1,18 +1,8 @@
package org.dromara.sms4j.solon.config; package org.dromara.sms4j.solon.config;
import org.dromara.sms4j.aliyun.config.AlibabaConfig;
import org.dromara.sms4j.api.SmsBlend; import org.dromara.sms4j.api.SmsBlend;
import org.dromara.sms4j.cloopen.config.CloopenConfig;
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.config.SmsConfig; import org.dromara.sms4j.provider.config.SmsConfig;
import org.dromara.sms4j.provider.factory.BaseProviderFactory; import org.dromara.sms4j.provider.factory.BaseProviderFactory;
import org.dromara.sms4j.provider.factory.BeanFactory;
import org.dromara.sms4j.tencent.config.TencentConfig;
import org.dromara.sms4j.unisms.config.UniConfig;
import org.dromara.sms4j.yunpian.config.YunpianConfig;
import org.noear.solon.annotation.Bean; import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Condition; import org.noear.solon.annotation.Condition;
import org.noear.solon.annotation.Configuration; import org.noear.solon.annotation.Configuration;

View File

@ -2,7 +2,6 @@ package org.dromara.sms4j.example.zhangjun;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.provider.config.BaseConfig; import org.dromara.sms4j.provider.config.BaseConfig;
/** /**

View File

@ -1,6 +1,5 @@
package org.dromara.sms4j.example.zhangjun; package org.dromara.sms4j.example.zhangjun;
import lombok.AccessLevel;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.dromara.sms4j.provider.factory.AbstractProviderFactory; import org.dromara.sms4j.provider.factory.AbstractProviderFactory;

View File

@ -81,16 +81,19 @@ public class ZhangJunSmsImpl extends AbstractSmsBlend<ZhangJunConfig> {
} }
private SmsResponse getSmsResponse(String phone, String message, String templateId) { private SmsResponse getSmsResponse(String phone, String message, String templateId) {
SmsResponse smsResponse;
try { try {
SmsResponse smsResponse = getResponse(http.postJson(getConfig().getUrl(), null, message)); smsResponse = getResponse(http.postJson(getConfig().getUrl(), null, message));
if(smsResponse.isSuccess() || retry == getConfig().getMaxRetries()){ } catch (SmsBlendException e) {
retry = 0; smsResponse = new SmsResponse();
return smsResponse; smsResponse.setSuccess(false);
} smsResponse.setData(e.getMessage());
return requestRetry(phone, message, templateId);
}catch (SmsBlendException e){
return requestRetry(phone, message, templateId);
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0;
return smsResponse;
}
return requestRetry(phone, message, templateId);
} }
private SmsResponse requestRetry(String phone, String message, String templateId) { private SmsResponse requestRetry(String phone, String message, String templateId) {

View File

@ -6,7 +6,6 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.SmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.utils.SmsUtils; import org.dromara.sms4j.comm.utils.SmsUtils;