mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-06 17:08:40 +08:00
!124 接入鼎众短信,修复JavaSE配置对象启动未经过拦截器处理的问题
Merge pull request !124 from sh1yu/dev-3.0.x
This commit is contained in:
commit
d359a1070a
@ -55,4 +55,9 @@ public abstract class SupplierConstant {
|
|||||||
*/
|
*/
|
||||||
public static final String LIANLU = "lianlu";
|
public static final String LIANLU = "lianlu";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 鼎众
|
||||||
|
*/
|
||||||
|
public static final String DINGZHONG = "dingzhong";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import org.dromara.sms4j.core.factory.SmsFactory;
|
|||||||
import org.dromara.sms4j.core.proxy.processor.*;
|
import org.dromara.sms4j.core.proxy.processor.*;
|
||||||
import org.dromara.sms4j.core.proxy.SmsProxyFactory;
|
import org.dromara.sms4j.core.proxy.SmsProxyFactory;
|
||||||
import org.dromara.sms4j.ctyun.config.CtyunFactory;
|
import org.dromara.sms4j.ctyun.config.CtyunFactory;
|
||||||
|
import org.dromara.sms4j.dingzhong.config.DingZhongFactory;
|
||||||
import org.dromara.sms4j.emay.config.EmayFactory;
|
import org.dromara.sms4j.emay.config.EmayFactory;
|
||||||
import org.dromara.sms4j.huawei.config.HuaweiFactory;
|
import org.dromara.sms4j.huawei.config.HuaweiFactory;
|
||||||
import org.dromara.sms4j.javase.util.YamlUtils;
|
import org.dromara.sms4j.javase.util.YamlUtils;
|
||||||
@ -39,6 +40,12 @@ import org.dromara.sms4j.unisms.config.UniFactory;
|
|||||||
import org.dromara.sms4j.yunpian.config.YunPianFactory;
|
import org.dromara.sms4j.yunpian.config.YunPianFactory;
|
||||||
import org.dromara.sms4j.zhutong.config.ZhutongFactory;
|
import org.dromara.sms4j.zhutong.config.ZhutongFactory;
|
||||||
|
|
||||||
|
import java.beans.BeanInfo;
|
||||||
|
import java.beans.Introspector;
|
||||||
|
import java.beans.PropertyDescriptor;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -99,6 +106,33 @@ public class SEInitializer {
|
|||||||
if (CollUtil.isEmpty(configList)) {
|
if (CollUtil.isEmpty(configList)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
try{
|
||||||
|
Map<String, Map<String, Object>> blends = new HashMap<>();
|
||||||
|
for (SupplierConfig supplierConfig : configList) {
|
||||||
|
Map<String, Object> param = new HashMap<>();
|
||||||
|
String channel = supplierConfig.getSupplier();
|
||||||
|
Class<? extends SupplierConfig> clazz = supplierConfig.getClass();
|
||||||
|
BeanInfo beanInfo = Introspector.getBeanInfo(clazz, Object.class);
|
||||||
|
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
|
||||||
|
for (PropertyDescriptor propertyDescriptor : propertyDescriptors) {
|
||||||
|
Method readMethod = propertyDescriptor.getReadMethod();
|
||||||
|
Object item = readMethod.invoke(supplierConfig);
|
||||||
|
param.put(propertyDescriptor.getName(),item);
|
||||||
|
}
|
||||||
|
blends.put(channel,param);
|
||||||
|
}
|
||||||
|
//持有初始化配置信息
|
||||||
|
EnvirmentHolder.frozenEnvirmet(smsConfig, blends);
|
||||||
|
|
||||||
|
//注册执行器实现
|
||||||
|
SmsProxyFactory.addProcessor(new RestrictedProcessor());
|
||||||
|
SmsProxyFactory.addProcessor(new BlackListProcessor());
|
||||||
|
SmsProxyFactory.addProcessor(new BlackListRecordingProcessor());
|
||||||
|
SmsProxyFactory.addProcessor(new SingleBlendRestrictedProcessor());
|
||||||
|
SmsProxyFactory.addProcessor(new CoreMethodParamValidateProcessor());
|
||||||
|
}catch (Exception e){
|
||||||
|
log.error("配置对象转换配置信息失败,但不影响基础功能的使用。【注意】:未加载SMS4J扩展功能模块,拦截器,参数校验可能失效!");
|
||||||
|
}
|
||||||
for (SupplierConfig supplierConfig : configList) {
|
for (SupplierConfig supplierConfig : configList) {
|
||||||
SmsFactory.createSmsBlend(supplierConfig);
|
SmsFactory.createSmsBlend(supplierConfig);
|
||||||
}
|
}
|
||||||
@ -194,6 +228,7 @@ public class SEInitializer {
|
|||||||
ProviderFactoryHolder.registerFactory(YunPianFactory.instance());
|
ProviderFactoryHolder.registerFactory(YunPianFactory.instance());
|
||||||
ProviderFactoryHolder.registerFactory(ZhutongFactory.instance());
|
ProviderFactoryHolder.registerFactory(ZhutongFactory.instance());
|
||||||
ProviderFactoryHolder.registerFactory(LianLuFactory.instance());
|
ProviderFactoryHolder.registerFactory(LianLuFactory.instance());
|
||||||
|
ProviderFactoryHolder.registerFactory(DingZhongFactory.instance());
|
||||||
if (SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) {
|
if (SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) {
|
||||||
ProviderFactoryHolder.registerFactory(JdCloudFactory.instance());
|
ProviderFactoryHolder.registerFactory(JdCloudFactory.instance());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,45 @@
|
|||||||
|
package org.dromara.sms4j.dingzhong.config;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import org.dromara.sms4j.comm.constant.SupplierConstant;
|
||||||
|
import org.dromara.sms4j.provider.config.BaseConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Wind
|
||||||
|
*/
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@Data
|
||||||
|
public class DingZhongConfig extends BaseConfig {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 模板变量名称
|
||||||
|
*/
|
||||||
|
private String templateName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 请求地址
|
||||||
|
*/
|
||||||
|
private String requestUrl = "http://demoapi.321sms.com:8201";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 基础接口名称
|
||||||
|
*/
|
||||||
|
private String baseAction = "Sms/SendSms";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 模板接口名称
|
||||||
|
*/
|
||||||
|
private String templateAction = "Sms/SendTemplateSms";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取供应商
|
||||||
|
*
|
||||||
|
* @since 3.0.0
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getSupplier() {
|
||||||
|
return SupplierConstant.DINGZHONG;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,48 @@
|
|||||||
|
package org.dromara.sms4j.dingzhong.config;
|
||||||
|
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.dromara.sms4j.comm.constant.SupplierConstant;
|
||||||
|
import org.dromara.sms4j.dingzhong.service.DingZhongSmsImpl;
|
||||||
|
import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DingZhongFactory
|
||||||
|
* <p> 鼎众对象建造者
|
||||||
|
*
|
||||||
|
* @author :Sh1yu
|
||||||
|
* 2023/12/26 14:54
|
||||||
|
**/
|
||||||
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
|
public class DingZhongFactory extends AbstractProviderFactory<DingZhongSmsImpl, DingZhongConfig> {
|
||||||
|
|
||||||
|
private static final DingZhongFactory INSTANCE = new DingZhongFactory();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取建造者实例
|
||||||
|
* @return 建造者实例
|
||||||
|
*/
|
||||||
|
public static DingZhongFactory instance() {
|
||||||
|
return INSTANCE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建短信实现对象
|
||||||
|
* @param dingZhongConfig 短信配置对象
|
||||||
|
* @return 短信实现对象
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public DingZhongSmsImpl createSms(DingZhongConfig dingZhongConfig) {
|
||||||
|
return new DingZhongSmsImpl(dingZhongConfig);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取供应商
|
||||||
|
* @return 供应商
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getSupplier() {
|
||||||
|
return SupplierConstant.DINGZHONG;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,91 @@
|
|||||||
|
package org.dromara.sms4j.dingzhong.service;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||||
|
import org.dromara.sms4j.comm.constant.SupplierConstant;
|
||||||
|
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
|
||||||
|
import org.dromara.sms4j.comm.utils.SmsUtils;
|
||||||
|
import org.dromara.sms4j.dingzhong.config.DingZhongConfig;
|
||||||
|
import org.dromara.sms4j.dingzhong.util.DingZhongHelper;
|
||||||
|
import org.dromara.sms4j.provider.service.AbstractSmsBlend;
|
||||||
|
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.Executor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>类名: DingZhongSmsImpl
|
||||||
|
* <p>说明: 鼎众短信实现
|
||||||
|
*
|
||||||
|
* @author :Sh1yu
|
||||||
|
* 2023/12/26 17:16
|
||||||
|
**/
|
||||||
|
@Slf4j
|
||||||
|
public class DingZhongSmsImpl extends AbstractSmsBlend<DingZhongConfig> {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DingZhongSmsImpl
|
||||||
|
* <p>构造器,用于构造短信实现模块
|
||||||
|
*
|
||||||
|
* @author :Sh1yu
|
||||||
|
*/
|
||||||
|
public DingZhongSmsImpl(DingZhongConfig config, Executor pool, DelayedTime delayedTime) {
|
||||||
|
super(config, pool, delayedTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DingZhongSmsImpl
|
||||||
|
* <p>构造器,用于构造短信实现模块
|
||||||
|
*/
|
||||||
|
public DingZhongSmsImpl(DingZhongConfig config) {
|
||||||
|
super(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getSupplier() {
|
||||||
|
return SupplierConstant.DINGZHONG;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SmsResponse sendMessage(String phone, String message) {
|
||||||
|
DingZhongHelper helper = new DingZhongHelper(getConfig(), http);
|
||||||
|
Map<String, Object> paramMap = new LinkedHashMap<>(4);
|
||||||
|
paramMap.put("cdkey", getConfig().getAccessKeyId());
|
||||||
|
paramMap.put("password", getConfig().getAccessKeySecret());
|
||||||
|
paramMap.put("mobile", phone);
|
||||||
|
paramMap.put("msg", message);
|
||||||
|
return helper.smsResponse(paramMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SmsResponse sendMessage(String phone, LinkedHashMap<String, String> messages) {
|
||||||
|
return sendMessage(phone, getConfig().getTemplateId(), messages);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
|
||||||
|
DingZhongHelper helper = new DingZhongHelper(getConfig(), http);
|
||||||
|
Map<String, Object> paramMap = new LinkedHashMap<>(5);
|
||||||
|
paramMap.put("cdkey", getConfig().getAccessKeyId());
|
||||||
|
paramMap.put("password", getConfig().getAccessKeySecret());
|
||||||
|
paramMap.put("mobile", phone);
|
||||||
|
paramMap.put("templateId", templateId);
|
||||||
|
JSONObject params = new JSONObject();
|
||||||
|
params.putAll(messages);
|
||||||
|
paramMap.put("msgParam", params.toString());
|
||||||
|
return helper.smsResponse(paramMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SmsResponse massTexting(List<String> phones, String message) {
|
||||||
|
return sendMessage(SmsUtils.arrayToString(phones), message);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
|
||||||
|
return sendMessage(SmsUtils.arrayToString(phones), templateId, messages);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,68 @@
|
|||||||
|
package org.dromara.sms4j.dingzhong.util;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONObject;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.dromara.sms4j.api.entity.SmsResponse;
|
||||||
|
import org.dromara.sms4j.comm.constant.Constant;
|
||||||
|
import org.dromara.sms4j.comm.exception.SmsBlendException;
|
||||||
|
import org.dromara.sms4j.comm.utils.SmsHttpUtils;
|
||||||
|
import org.dromara.sms4j.comm.utils.SmsUtils;
|
||||||
|
import org.dromara.sms4j.dingzhong.config.DingZhongConfig;
|
||||||
|
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 鼎众 Helper
|
||||||
|
*
|
||||||
|
* @author sh1yu
|
||||||
|
* @since 2023/12/26 20:57
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
public class DingZhongHelper {
|
||||||
|
|
||||||
|
private final DingZhongConfig config;
|
||||||
|
private final SmsHttpUtils http;
|
||||||
|
private int retry = 0;
|
||||||
|
|
||||||
|
public DingZhongHelper(DingZhongConfig config, SmsHttpUtils http) {
|
||||||
|
this.config = config;
|
||||||
|
this.http = http;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SmsResponse smsResponse(Map<String, Object> paramMap) {
|
||||||
|
String url = String.format("%s/%s", config.getRequestUrl(), SmsUtils.isEmpty(paramMap.get("templateId"))?config.getBaseAction():config.getTemplateAction());
|
||||||
|
Map<String, String> headers = new LinkedHashMap<>(2);
|
||||||
|
headers.put("Accept", Constant.ACCEPT);
|
||||||
|
headers.put("Content-Type", Constant.FROM_URLENCODED);
|
||||||
|
SmsResponse smsResponse = null;
|
||||||
|
try {
|
||||||
|
smsResponse = getResponse(http.postFrom(url, headers, paramMap));
|
||||||
|
} catch (SmsBlendException e) {
|
||||||
|
smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess(false);
|
||||||
|
smsResponse.setData(e.getMessage());
|
||||||
|
}
|
||||||
|
if (smsResponse.isSuccess() || retry == config.getMaxRetries()) {
|
||||||
|
retry = 0;
|
||||||
|
return smsResponse;
|
||||||
|
}
|
||||||
|
return requestRetry(paramMap);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private SmsResponse requestRetry(Map<String, Object> paramMap) {
|
||||||
|
http.safeSleep(config.getRetryInterval());
|
||||||
|
retry++;
|
||||||
|
log.warn("短信第 {" + retry + "} 次重新发送");
|
||||||
|
return smsResponse(paramMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
private SmsResponse getResponse(JSONObject resJson) {
|
||||||
|
SmsResponse smsResponse = new SmsResponse();
|
||||||
|
smsResponse.setSuccess("0".equals(resJson.getStr("resCode")));
|
||||||
|
smsResponse.setData(resJson);
|
||||||
|
smsResponse.setConfigId(this.config.getConfigId());
|
||||||
|
return smsResponse;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -15,6 +15,7 @@ import org.dromara.sms4j.core.factory.SmsFactory;
|
|||||||
import org.dromara.sms4j.core.proxy.processor.*;
|
import org.dromara.sms4j.core.proxy.processor.*;
|
||||||
import org.dromara.sms4j.core.proxy.SmsProxyFactory;
|
import org.dromara.sms4j.core.proxy.SmsProxyFactory;
|
||||||
import org.dromara.sms4j.ctyun.config.CtyunFactory;
|
import org.dromara.sms4j.ctyun.config.CtyunFactory;
|
||||||
|
import org.dromara.sms4j.dingzhong.config.DingZhongFactory;
|
||||||
import org.dromara.sms4j.emay.config.EmayFactory;
|
import org.dromara.sms4j.emay.config.EmayFactory;
|
||||||
import org.dromara.sms4j.huawei.config.HuaweiFactory;
|
import org.dromara.sms4j.huawei.config.HuaweiFactory;
|
||||||
import org.dromara.sms4j.jdcloud.config.JdCloudFactory;
|
import org.dromara.sms4j.jdcloud.config.JdCloudFactory;
|
||||||
@ -103,6 +104,7 @@ public class SmsBlendsInitializer {
|
|||||||
ProviderFactoryHolder.registerFactory(YunPianFactory.instance());
|
ProviderFactoryHolder.registerFactory(YunPianFactory.instance());
|
||||||
ProviderFactoryHolder.registerFactory(ZhutongFactory.instance());
|
ProviderFactoryHolder.registerFactory(ZhutongFactory.instance());
|
||||||
ProviderFactoryHolder.registerFactory(LianLuFactory.instance());
|
ProviderFactoryHolder.registerFactory(LianLuFactory.instance());
|
||||||
|
ProviderFactoryHolder.registerFactory(DingZhongFactory.instance());
|
||||||
if(SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) {
|
if(SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) {
|
||||||
ProviderFactoryHolder.registerFactory(JdCloudFactory.instance());
|
ProviderFactoryHolder.registerFactory(JdCloudFactory.instance());
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,7 @@ 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;
|
||||||
@ -14,6 +15,7 @@ import org.dromara.sms4j.lianlu.service.LianLuSmsImpl;
|
|||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -241,4 +243,39 @@ class Sms4jTest {
|
|||||||
Assert.isTrue(smsResponse.isSuccess());
|
Assert.isTrue(smsResponse.isSuccess());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 鼎众普通短信
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void dingZhongSmsTest() {
|
||||||
|
if (StrUtil.isBlank(PHONE)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
SmsBlend dz = SmsFactory.getBySupplier(SupplierConstant.DINGZHONG);
|
||||||
|
|
||||||
|
LinkedHashMap<String, String> messages = new LinkedHashMap<>();
|
||||||
|
messages.put("code", SmsUtils.getRandomInt(6));
|
||||||
|
|
||||||
|
ArrayList<String> phones = new ArrayList<>();
|
||||||
|
phones.add(PHONE);
|
||||||
|
phones.add(PHONE);
|
||||||
|
|
||||||
|
SmsResponse smsResponse = dz.sendMessage(PHONE, "测试短信" + SmsUtils.getRandomInt(6));
|
||||||
|
log.info(JSONUtil.toJsonStr(smsResponse));
|
||||||
|
Assert.isTrue(smsResponse.isSuccess());
|
||||||
|
|
||||||
|
SmsResponse smsResponse1 = dz.sendMessage(PHONE, messages);
|
||||||
|
log.info(JSONUtil.toJsonStr(smsResponse1));
|
||||||
|
Assert.isTrue(smsResponse1.isSuccess());
|
||||||
|
|
||||||
|
SmsResponse smsResponse3 = dz.massTexting(phones, "测试短信" + SmsUtils.getRandomInt(6));
|
||||||
|
log.info(JSONUtil.toJsonStr(smsResponse3));
|
||||||
|
Assert.isTrue(smsResponse3.isSuccess());
|
||||||
|
|
||||||
|
SmsResponse smsResponse4 = dz.massTexting(phones, "" ,messages);
|
||||||
|
log.info(JSONUtil.toJsonStr(smsResponse4));
|
||||||
|
Assert.isTrue(smsResponse4.isSuccess());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -16,6 +16,7 @@ import org.dromara.sms4j.core.factory.SmsFactory;
|
|||||||
import org.dromara.sms4j.core.proxy.processor.*;
|
import org.dromara.sms4j.core.proxy.processor.*;
|
||||||
import org.dromara.sms4j.core.proxy.SmsProxyFactory;
|
import org.dromara.sms4j.core.proxy.SmsProxyFactory;
|
||||||
import org.dromara.sms4j.ctyun.config.CtyunFactory;
|
import org.dromara.sms4j.ctyun.config.CtyunFactory;
|
||||||
|
import org.dromara.sms4j.dingzhong.config.DingZhongFactory;
|
||||||
import org.dromara.sms4j.emay.config.EmayFactory;
|
import org.dromara.sms4j.emay.config.EmayFactory;
|
||||||
import org.dromara.sms4j.huawei.config.HuaweiFactory;
|
import org.dromara.sms4j.huawei.config.HuaweiFactory;
|
||||||
import org.dromara.sms4j.jdcloud.config.JdCloudFactory;
|
import org.dromara.sms4j.jdcloud.config.JdCloudFactory;
|
||||||
@ -101,6 +102,7 @@ public class SmsBlendsInitializer {
|
|||||||
ProviderFactoryHolder.registerFactory(YunPianFactory.instance());
|
ProviderFactoryHolder.registerFactory(YunPianFactory.instance());
|
||||||
ProviderFactoryHolder.registerFactory(ZhutongFactory.instance());
|
ProviderFactoryHolder.registerFactory(ZhutongFactory.instance());
|
||||||
ProviderFactoryHolder.registerFactory(LianLuFactory.instance());
|
ProviderFactoryHolder.registerFactory(LianLuFactory.instance());
|
||||||
|
ProviderFactoryHolder.registerFactory(DingZhongFactory.instance());
|
||||||
if(SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) {
|
if(SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) {
|
||||||
ProviderFactoryHolder.registerFactory(JdCloudFactory.instance());
|
ProviderFactoryHolder.registerFactory(JdCloudFactory.instance());
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user