mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-07 01:18:33 +08:00
commit
d1068c66e1
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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 {
|
||||||
|
|||||||
@ -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);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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);
|
||||||
try {
|
|
||||||
Map<String, String> headers = new LinkedHashMap<>(1);
|
Map<String, String> headers = new LinkedHashMap<>(1);
|
||||||
headers.put("Content-Type", Constant.FROM_URLENCODED);
|
headers.put("Content-Type", Constant.FROM_URLENCODED);
|
||||||
SmsResponse smsResponse = getResponse(http.postJson(requestUrl, headers, paramStr));
|
SmsResponse smsResponse;
|
||||||
|
try {
|
||||||
|
smsResponse = getResponse(http.postJson(requestUrl, headers, paramStr));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phone, message, templateId);
|
return requestRetry(phone, message, templateId);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
return requestRetry(phone, message, templateId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SmsResponse requestRetry(String phone, String message, String templateId) {
|
private SmsResponse requestRetry(String phone, String message, String templateId) {
|
||||||
|
|||||||
@ -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));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phone, message, templateId);
|
return requestRetry(phone, message, templateId);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
return requestRetry(phone, message, templateId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SmsResponse requestRetry(String phone, String message, String templateId) {
|
private SmsResponse requestRetry(String phone, String message, String templateId) {
|
||||||
|
|||||||
@ -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);
|
||||||
try {
|
|
||||||
Map<String, String> headers = new LinkedHashMap<>(1);
|
Map<String, String> headers = new LinkedHashMap<>(1);
|
||||||
headers.put("Content-Type", Constant.FROM_URLENCODED);
|
headers.put("Content-Type", Constant.FROM_URLENCODED);
|
||||||
SmsResponse smsResponse = getResponse(http.postUrl(url, headers, params));
|
SmsResponse smsResponse;
|
||||||
|
try {
|
||||||
|
smsResponse = getResponse(http.postUrl(url, headers, params));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phone, message);
|
return requestRetry(phone, message);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
return requestRetry(phone, message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SmsResponse requestRetry(String phone, String message) {
|
private SmsResponse requestRetry(String phone, String message) {
|
||||||
|
|||||||
@ -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());
|
||||||
try {
|
|
||||||
Map<String, String> headers = new LinkedHashMap<>(3);
|
Map<String, String> headers = new LinkedHashMap<>(3);
|
||||||
headers.put("Authorization", Constant.HUAWEI_AUTH_HEADER_VALUE);
|
headers.put("Authorization", Constant.HUAWEI_AUTH_HEADER_VALUE);
|
||||||
headers.put("X-WSSE", HuaweiBuilder.buildWsseHeader(getConfig().getAccessKeyId(), getConfig().getAccessKeySecret()));
|
headers.put("X-WSSE", HuaweiBuilder.buildWsseHeader(getConfig().getAccessKeyId(), getConfig().getAccessKeySecret()));
|
||||||
headers.put("Content-Type", Constant.FROM_URLENCODED);
|
headers.put("Content-Type", Constant.FROM_URLENCODED);
|
||||||
SmsResponse smsResponse = getResponse(http.postJson(url, headers, requestBody));
|
SmsResponse smsResponse;
|
||||||
|
try {
|
||||||
|
smsResponse = getResponse(http.postJson(url, headers, requestBody));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phone, templateId, messages);
|
return requestRetry(phone, templateId, messages);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
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) {
|
||||||
|
|||||||
@ -79,17 +79,20 @@ public class JdCloudSmsImpl extends AbstractSmsBlend<JdCloudConfig> {
|
|||||||
throw new SmsBlendException(e.getMessage());
|
throw new SmsBlendException(e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
|
||||||
BatchSendResult result = client.batchSend(request).getResult();
|
BatchSendResult result = client.batchSend(request).getResult();
|
||||||
SmsResponse smsResponse = getSmsResponse(result);
|
SmsResponse smsResponse;
|
||||||
|
try {
|
||||||
|
smsResponse = getSmsResponse(result);
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phones, templateId, messages);
|
return requestRetry(phones, templateId, messages);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
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) {
|
||||||
|
|||||||
@ -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());
|
||||||
|
|
||||||
try {
|
|
||||||
Map<String, String> headers = new LinkedHashMap<>(5);
|
Map<String, String> headers = new LinkedHashMap<>(5);
|
||||||
headers.put("Content-Type", Constant.FROM_URLENCODED);
|
headers.put("Content-Type", Constant.FROM_URLENCODED);
|
||||||
headers.put("AppKey", getConfig().getAccessKeyId());
|
headers.put("AppKey", getConfig().getAccessKeyId());
|
||||||
headers.put("Nonce", nonce);
|
headers.put("Nonce", nonce);
|
||||||
headers.put("CurTime", curTime);
|
headers.put("CurTime", curTime);
|
||||||
headers.put("CheckSum", checkSum);
|
headers.put("CheckSum", checkSum);
|
||||||
SmsResponse smsResponse = getResponse(http.postJson(requestUrl, headers, body));
|
SmsResponse smsResponse;
|
||||||
|
try {
|
||||||
|
smsResponse = getResponse(http.postJson(requestUrl, headers, body));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(requestUrl, phones, message, templateId);
|
return requestRetry(requestUrl, phones, message, templateId);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
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) {
|
||||||
|
|||||||
@ -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));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phones, messages, templateId);
|
return requestRetry(phones, messages, templateId);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
return requestRetry(phones, messages, templateId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SmsResponse requestRetry(String[] phones, String[] messages, String templateId) {
|
private SmsResponse requestRetry(String[] phones, String[] messages, String templateId) {
|
||||||
|
|||||||
@ -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));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new UniResponse();
|
||||||
|
smsResponse.message = "Error";
|
||||||
|
}
|
||||||
if ("Success".equals(smsResponse.message) || retry == maxRetries) {
|
if ("Success".equals(smsResponse.message) || retry == maxRetries) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(action, data);
|
return requestRetry(action, data);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
return requestRetry(action, data);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private UniResponse requestRetry(String action, Map<String, Object> data) {
|
private UniResponse requestRetry(String action, Map<String, Object> data) {
|
||||||
|
|||||||
@ -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.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -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));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phone, message);
|
return requestRetry(phone, message);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
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));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
return requestRetry(phone, templateId, messages);
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phone, templateId, messages);
|
return requestRetry(phone, templateId, messages);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
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) {
|
||||||
|
|||||||
@ -130,18 +130,21 @@ public class ZhutongSmsImpl extends AbstractSmsBlend<ZhutongConfig> {
|
|||||||
//内容
|
//内容
|
||||||
json.put("content", content);
|
json.put("content", content);
|
||||||
|
|
||||||
try {
|
|
||||||
Map<String, String> headers = new LinkedHashMap<>(1);
|
Map<String, String> headers = new LinkedHashMap<>(1);
|
||||||
headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8);
|
headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8);
|
||||||
SmsResponse smsResponse = getResponse(http.postJson(requestUrl, headers, json));
|
SmsResponse smsResponse;
|
||||||
|
try {
|
||||||
|
smsResponse = getResponse(http.postJson(requestUrl, headers, json));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phones, content);
|
return requestRetry(phones, content);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
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);
|
||||||
|
|
||||||
try {
|
|
||||||
Map<String, String> headers = new LinkedHashMap<>(1);
|
Map<String, String> headers = new LinkedHashMap<>(1);
|
||||||
headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8);
|
headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8);
|
||||||
SmsResponse smsResponse = getResponse(http.postJson(requestUrl, headers, requestJson.toString()));
|
SmsResponse smsResponse;
|
||||||
|
try {
|
||||||
|
smsResponse = getResponse(http.postJson(requestUrl, headers, requestJson.toString()));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(templateId, phones, messages);
|
return requestRetry(templateId, phones, messages);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
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) {
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
|
||||||
retry = 0;
|
retry = 0;
|
||||||
return smsResponse;
|
return smsResponse;
|
||||||
}
|
}
|
||||||
return requestRetry(phone, message, templateId);
|
return requestRetry(phone, message, templateId);
|
||||||
}catch (SmsBlendException e){
|
|
||||||
return requestRetry(phone, message, templateId);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private SmsResponse requestRetry(String phone, String message, String templateId) {
|
private SmsResponse requestRetry(String phone, String message, String templateId) {
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user