update 通用返回

This commit is contained in:
bleachtred 2024-05-13 03:09:22 +08:00
parent f7c53c5f4e
commit a2a740a339
24 changed files with 203 additions and 218 deletions

View File

@ -0,0 +1,52 @@
package org.dromara.sms4j.api.utils;
import org.dromara.sms4j.api.entity.SmsResponse;
public class SmsRespUtils {
private SmsRespUtils() {
} //私有构造防止实例化
public static SmsResponse error(){
return error("error no response", null);
}
public static SmsResponse error(String configId){
return error("error no response", configId);
}
public static SmsResponse error(String detailMessage, String configId){
return resp(detailMessage, false, configId);
}
public static SmsResponse success(){
return success(null);
}
public static SmsResponse success(Object data){
return success(data, null);
}
public static SmsResponse resp(Object data, boolean success){
return resp(data, success, null);
}
public static SmsResponse success(Object data, String configId){
return resp(data, true, configId);
}
public static SmsResponse resp(boolean success){
return success ? success() : error();
}
public static SmsResponse resp(boolean success, String configId){
return resp(null, success, configId);
}
public static SmsResponse resp(Object data, boolean success, String configId){
SmsResponse error = new SmsResponse();
error.setSuccess(success);
error.setData(data);
error.setConfigId(configId);
return error;
}
}

View File

@ -187,6 +187,7 @@ public class SmsUtils {
* 将任意类型集合转成想要的数组 * 将任意类型集合转成想要的数组
* @param list 需要转换的集合 * @param list 需要转换的集合
* @param predicate 过滤条件 * @param predicate 过滤条件
* @param mapper 对此流的元素执行函数
* @param array 想要的数组 * @param array 想要的数组
* @return 数组 * @return 数组
* @param <T> 集合泛型 * @param <T> 集合泛型

View File

@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.aliyun.config.AlibabaConfig; import org.dromara.sms4j.aliyun.config.AlibabaConfig;
import org.dromara.sms4j.aliyun.utils.AliyunUtils; import org.dromara.sms4j.aliyun.utils.AliyunUtils;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
@ -113,9 +114,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend<AlibabaConfig> {
try { try {
smsResponse = getResponse(http.postJson(requestUrl, headers, paramStr)); smsResponse = getResponse(http.postJson(requestUrl, headers, paramStr));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -132,11 +131,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend<AlibabaConfig> {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "OK".equals(resJson.getStr("Code")), getConfigId());
smsResponse.setSuccess("OK".equals(resJson.getStr("Code")));
smsResponse.setData(resJson);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -157,9 +158,7 @@ public class BaiduSmsImpl extends AbstractSmsBlend<BaiduConfig> {
try { try {
smsResponse = getResponse(http.postJson(config.getHost() + config.getAction(), headers, body)); smsResponse = getResponse(http.postJson(config.getHost() + config.getAction(), headers, body));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == config.getMaxRetries()) { if (smsResponse.isSuccess() || retry == config.getMaxRetries()) {
retry = 0; retry = 0;
@ -176,11 +175,7 @@ public class BaiduSmsImpl extends AbstractSmsBlend<BaiduConfig> {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "1000".equals(resJson.getStr("code")), getConfigId());
smsResponse.setSuccess("1000".equals(resJson.getStr("code")));
smsResponse.setData(resJson);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -3,6 +3,7 @@ package org.dromara.sms4j.budingyun.service;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.budingyun.config.BudingV2Config; import org.dromara.sms4j.budingyun.config.BudingV2Config;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
@ -46,7 +47,6 @@ public class BudingV2SmsImpl extends AbstractSmsBlend<BudingV2Config> {
@Override @Override
public SmsResponse sendMessage(String phone, String message) { public SmsResponse sendMessage(String phone, String message) {
System.out.println("sendMessage");
Map<String, Object> body = new HashMap<>(); Map<String, Object> body = new HashMap<>();
System.out.println(getConfig().getSignKey()); System.out.println(getConfig().getSignKey());
@ -70,9 +70,7 @@ public class BudingV2SmsImpl extends AbstractSmsBlend<BudingV2Config> {
try { try {
smsResponse = getResponse(http.postFrom(URL + "/Api/Sent", headers, body)); smsResponse = getResponse(http.postFrom(URL + "/Api/Sent", headers, body));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -88,17 +86,11 @@ public class BudingV2SmsImpl extends AbstractSmsBlend<BudingV2Config> {
return sendMessage(phone, message); return sendMessage(phone, message);
} }
private SmsResponse getResponse(JSONObject entries) { private SmsResponse getResponse(JSONObject resJson) {
System.out.println(entries); if (resJson == null) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.error(getConfigId());
if (entries == null) {
smsResponse.setSuccess(false);
return smsResponse;
} }
smsResponse.setSuccess(entries.getBool("bool")); return SmsRespUtils.resp(resJson, resJson.getBool("bool"), getConfigId());
smsResponse.setData(entries);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
/** /**
@ -116,9 +108,7 @@ public class BudingV2SmsImpl extends AbstractSmsBlend<BudingV2Config> {
failed++; failed++;
} }
} }
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(failed == 0, getConfigId());
smsResponse.setSuccess(failed == 0);
return smsResponse;
} }
/** /**
@ -148,9 +138,7 @@ public class BudingV2SmsImpl extends AbstractSmsBlend<BudingV2Config> {
failed++; failed++;
} }
} }
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(failed == 0, getConfigId());
smsResponse.setSuccess(failed == 0);
return smsResponse;
} }
/** /**

View File

@ -13,12 +13,16 @@ import org.dromara.sms4j.provider.config.BaseConfig;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
public class ChuangLanConfig extends BaseConfig { public class ChuangLanConfig extends BaseConfig {
/** /**
* 基础路径 * 基础路径
*/ */
private String baseUrl = "https://smssh1.253.com/msg"; private String baseUrl = "https://smssh1.253.com/msg";
/** /**
* 短信发送路径 * 短信发送路径
* 普通短信发送 /v1/send/json 此接口支持单发群发短信
* 变量短信发送 /variable/json 单号码对应单内容批量下发
*/ */
private String msgUrl = "/variable/json"; private String msgUrl = "/variable/json";

View File

@ -3,13 +3,14 @@ package org.dromara.sms4j.chuanglan.service;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.chuanglan.config.ChuangLanConfig; import org.dromara.sms4j.chuanglan.config.ChuangLanConfig;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.utils.SmsUtils; import org.dromara.sms4j.comm.utils.SmsUtils;
import org.dromara.sms4j.provider.service.AbstractSmsBlend; import org.dromara.sms4j.provider.service.AbstractSmsBlend;
import java.util.Collection;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
@ -24,12 +25,12 @@ public class ChuangLanSmsImpl extends AbstractSmsBlend<ChuangLanConfig> {
private int retry = 0; private int retry = 0;
public ChuangLanSmsImpl(ChuangLanConfig chuangLanConfig, Executor pool, DelayedTime delayed) { public ChuangLanSmsImpl(ChuangLanConfig config, Executor pool, DelayedTime delayed) {
super(chuangLanConfig, pool, delayed); super(config, pool, delayed);
} }
public ChuangLanSmsImpl(ChuangLanConfig chuangLanConfig) { public ChuangLanSmsImpl(ChuangLanConfig config) {
super(chuangLanConfig); super(config);
} }
@Override @Override
@ -49,19 +50,14 @@ public class ChuangLanSmsImpl extends AbstractSmsBlend<ChuangLanConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
String reqUrl = getConfig().getBaseUrl() + getConfig().getMsgUrl(); if (SmsUtils.isEmpty(messages)){
Collection<String> values = messages.values(); messages = new LinkedHashMap<>();
String message = String.join(",", values); }
LinkedHashMap<String, Object> params = new LinkedHashMap<>(); String message = String.join(",", messages.values());
params.put("account", getConfig().getAccessKeyId()); ChuangLanConfig config = getConfig();
params.put("password", getConfig().getAccessKeySecret()); LinkedHashMap<String, Object> body = buildBody(config.getAccessKeyId(), config.getAccessKeySecret(), templateId);
params.put("msg", templateId); body.put("params", phone + "," + message);
params.put("params", phone + "," + message); return getSmsResponse(body);
LinkedHashMap<String, String> headers = new LinkedHashMap<>();
headers.put("Content-Type", "application/json");
return resProcessing(reqUrl, headers, params);
} }
@Override @Override
@ -71,32 +67,45 @@ public class ChuangLanSmsImpl extends AbstractSmsBlend<ChuangLanConfig> {
@Override @Override
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
String reqUrl = getConfig().getBaseUrl() + getConfig().getMsgUrl(); if (SmsUtils.isEmpty(messages)){
messages = new LinkedHashMap<>();
Collection<String> values = messages.values(); }
String message = String.join(",", values); String message = String.join(",", messages.values());
StringBuilder param = new StringBuilder(); StringBuilder param = new StringBuilder();
phones.forEach(phone -> param.append(phone).append(",").append(message).append(";")); phones.forEach(phone -> param.append(phone).append(",").append(message).append(";"));
ChuangLanConfig config = getConfig();
LinkedHashMap<String, Object> params = new LinkedHashMap<>(); LinkedHashMap<String, Object> params = buildBody(config.getAccessKeyId(), config.getAccessKeySecret(), templateId);
params.put("account", getConfig().getAccessKeyId());
params.put("password", getConfig().getAccessKeySecret());
params.put("msg", templateId);
params.put("params", param.toString()); params.put("params", param.toString());
return getSmsResponse(params);
LinkedHashMap<String, String> headers = new LinkedHashMap<>();
headers.put("Content-Type", "application/json");
return resProcessing(reqUrl, headers, params);
} }
private SmsResponse resProcessing(String reqUrl, LinkedHashMap<String, String> headers, LinkedHashMap<String, Object> params) { private static String buildUrl(String baseUrl, String msgUrl){
JSONObject jsonObject = http.postJson(reqUrl, headers, params); return baseUrl + msgUrl;
SmsResponse smsResponse = new SmsResponse(); }
smsResponse.setSuccess(jsonObject.containsKey("code") && "0".equals(jsonObject.getStr("code")));
smsResponse.setData(jsonObject); private static LinkedHashMap<String, String> buildHeaders(){
smsResponse.setConfigId(getConfigId()); LinkedHashMap<String, String> headers = new LinkedHashMap<>(1);
headers.put("Content-Type", "application/json");
return headers;
}
private static LinkedHashMap<String, Object> buildBody(String accessKeyId, String accessKeySecret, String templateId){
LinkedHashMap<String, Object> body = new LinkedHashMap<>(3);
body.put("account", accessKeyId);
body.put("password", accessKeySecret);
body.put("msg", templateId);
return body;
}
private SmsResponse getSmsResponse(LinkedHashMap<String, Object> body) {
ChuangLanConfig config = getConfig();
SmsResponse smsResponse;
String reqUrl = buildUrl(config.getBaseUrl(), config.getMsgUrl());
try {
smsResponse = getResponse(http.postJson(reqUrl, buildHeaders(), body));
}catch (SmsBlendException e) {
smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
}
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
return smsResponse; return smsResponse;
@ -104,7 +113,18 @@ public class ChuangLanSmsImpl extends AbstractSmsBlend<ChuangLanConfig> {
http.safeSleep(getConfig().getRetryInterval()); http.safeSleep(getConfig().getRetryInterval());
retry++; retry++;
log.warn("短信第 {" + retry + "} 次重新发送"); log.warn("短信第 {" + retry + "} 次重新发送");
return resProcessing(reqUrl, headers, params); return requestRetry(body);
}
private SmsResponse requestRetry(LinkedHashMap<String, Object> body) {
http.safeSleep(getConfig().getRetryInterval());
retry ++;
log.warn("短信第 {} 次重新发送", retry);
return getSmsResponse(body);
}
private SmsResponse getResponse(JSONObject resJson) {
return SmsRespUtils.resp(resJson, resJson.containsKey("code") && "0".equals(resJson.getStr("code")), getConfigId());
} }
} }

View File

@ -8,6 +8,7 @@ import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.cloopen.config.CloopenConfig; import org.dromara.sms4j.cloopen.config.CloopenConfig;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -46,13 +47,11 @@ public class CloopenHelper {
headers.put("Accept", Constant.ACCEPT); headers.put("Accept", Constant.ACCEPT);
headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8); headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8);
headers.put("Authorization", this.generateAuthorization(config.getAccessKeyId(), timestamp)); headers.put("Authorization", this.generateAuthorization(config.getAccessKeyId(), timestamp));
SmsResponse smsResponse = null; SmsResponse smsResponse;
try { try {
smsResponse = getResponse(http.postJson(url, headers, paramMap)); smsResponse = getResponse(http.postJson(url, headers, paramMap));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.message, config.getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == config.getMaxRetries()) { if (smsResponse.isSuccess() || retry == config.getMaxRetries()) {
retry = 0; retry = 0;
@ -70,11 +69,7 @@ public class CloopenHelper {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "000000".equals(resJson.getStr("statusCode")), config.getConfigId());
smsResponse.setSuccess("000000".equals(resJson.getStr("statusCode")));
smsResponse.setData(resJson);
smsResponse.setConfigId(this.config.getConfigId());
return smsResponse;
} }
/** /**

View File

@ -4,6 +4,7 @@ import cn.hutool.json.JSONObject;
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.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -83,11 +84,12 @@ public class CtyunSmsImpl extends AbstractSmsBlend<CtyunConfig> {
} }
private SmsResponse getSmsResponse(String phone, String message, String templateId) { private SmsResponse getSmsResponse(String phone, String message, String templateId) {
CtyunConfig config = getConfig();
String requestUrl; String requestUrl;
String paramStr; String paramStr;
try { try {
requestUrl = getConfig().getRequestUrl(); requestUrl = config.getRequestUrl();
paramStr = CtyunUtils.generateParamJsonStr(getConfig(), phone, message, templateId); paramStr = CtyunUtils.generateParamJsonStr(config, phone, message, templateId);
} catch (Exception e) { } catch (Exception e) {
log.error("ctyun send message error", e); log.error("ctyun send message error", e);
throw new SmsBlendException(e.getMessage()); throw new SmsBlendException(e.getMessage());
@ -96,14 +98,12 @@ public class CtyunSmsImpl extends AbstractSmsBlend<CtyunConfig> {
SmsResponse smsResponse; SmsResponse smsResponse;
try { try {
smsResponse = getResponse(http.postJson(requestUrl, smsResponse = getResponse(http.postJson(requestUrl,
CtyunUtils.signHeader(paramStr, getConfig().getAccessKeyId(), getConfig().getAccessKeySecret()), CtyunUtils.signHeader(paramStr, config.getAccessKeyId(), config.getAccessKeySecret()),
paramStr)); paramStr));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.message, config.getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == config.getMaxRetries()) {
retry = 0; retry = 0;
return smsResponse; return smsResponse;
} }
@ -118,11 +118,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend<CtyunConfig> {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "OK".equals(resJson.getStr("code")), getConfigId());
smsResponse.setSuccess("OK".equals(resJson.getStr("code")));
smsResponse.setData(resJson);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -4,6 +4,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.utils.SmsHttpUtils; import org.dromara.sms4j.comm.utils.SmsHttpUtils;
@ -35,13 +36,11 @@ public class DingZhongHelper {
Map<String, String> headers = MapUtil.newHashMap(2, true); Map<String, String> headers = MapUtil.newHashMap(2, true);
headers.put("Accept", Constant.ACCEPT); headers.put("Accept", Constant.ACCEPT);
headers.put("Content-Type", Constant.FROM_URLENCODED); headers.put("Content-Type", Constant.FROM_URLENCODED);
SmsResponse smsResponse = null; SmsResponse smsResponse;
try { try {
smsResponse = getResponse(http.postFrom(url, headers, paramMap)); smsResponse = getResponse(http.postFrom(url, headers, paramMap));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.message, config.getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == config.getMaxRetries()) { if (smsResponse.isSuccess() || retry == config.getMaxRetries()) {
retry = 0; retry = 0;
@ -59,10 +58,6 @@ public class DingZhongHelper {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "0".equals(resJson.getStr("resCode")), config.getConfigId());
smsResponse.setSuccess("0".equals(resJson.getStr("resCode")));
smsResponse.setData(resJson);
smsResponse.setConfigId(this.config.getConfigId());
return smsResponse;
} }
} }

View File

@ -4,6 +4,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
@ -44,8 +45,9 @@ public class EmaySmsImpl extends AbstractSmsBlend<EmayConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String message) { public SmsResponse sendMessage(String phone, String message) {
String url = getConfig().getRequestUrl(); EmayConfig config = getConfig();
Map<String, Object> params = EmayBuilder.buildRequestBody(getConfig().getAccessKeyId(), getConfig().getAccessKeySecret(), phone, message); String url = config.getRequestUrl();
Map<String, Object> params = EmayBuilder.buildRequestBody(config.getAccessKeyId(), config.getAccessKeySecret(), phone, message);
Map<String, String> headers = MapUtil.newHashMap(1, true); Map<String, String> headers = MapUtil.newHashMap(1, true);
headers.put("Content-Type", Constant.FROM_URLENCODED); headers.put("Content-Type", Constant.FROM_URLENCODED);
@ -53,11 +55,9 @@ public class EmaySmsImpl extends AbstractSmsBlend<EmayConfig> {
try { try {
smsResponse = getResponse(http.postUrl(url, headers, params)); smsResponse = getResponse(http.postUrl(url, headers, params));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.message, config.getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == config.getMaxRetries()) {
retry = 0; retry = 0;
return smsResponse; return smsResponse;
} }
@ -113,11 +113,7 @@ public class EmaySmsImpl extends AbstractSmsBlend<EmayConfig> {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "success".equalsIgnoreCase(resJson.getStr("code")), getConfigId());
smsResponse.setSuccess("success".equalsIgnoreCase(resJson.getStr("code")));
smsResponse.setData(resJson);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -5,6 +5,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
@ -77,9 +78,7 @@ public class HuaweiSmsImpl extends AbstractSmsBlend<HuaweiConfig> {
try { try {
smsResponse = getResponse(http.postJson(url, headers, requestBody)); smsResponse = getResponse(http.postJson(url, headers, requestBody));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -109,11 +108,7 @@ public class HuaweiSmsImpl extends AbstractSmsBlend<HuaweiConfig> {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "000000".equals(resJson.getStr("code")), getConfigId());
smsResponse.setSuccess("000000".equals(resJson.getStr("code")));
smsResponse.setData(resJson);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -6,6 +6,7 @@ import com.jdcloud.sdk.service.sms.model.BatchSendRequest;
import com.jdcloud.sdk.service.sms.model.BatchSendResult; import com.jdcloud.sdk.service.sms.model.BatchSendResult;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -96,9 +97,7 @@ public class JdCloudSmsImpl extends AbstractSmsBlend<JdCloudConfig> {
try { try {
smsResponse = getSmsResponse(result); smsResponse = getSmsResponse(result);
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -121,10 +120,6 @@ public class JdCloudSmsImpl extends AbstractSmsBlend<JdCloudConfig> {
* @return 发送短信返回信息 * @return 发送短信返回信息
*/ */
private SmsResponse getSmsResponse(BatchSendResult res) { private SmsResponse getSmsResponse(BatchSendResult res) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(res, res.getStatus() != null && res.getStatus(), getConfigId());
smsResponse.setSuccess(res.getStatus() != null && res.getStatus());
smsResponse.setData(res);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -3,6 +3,7 @@ package org.dromara.sms4j.jg.service;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -115,9 +116,7 @@ public class JgSmsImpl extends AbstractSmsBlend<JgConfig> {
try { try {
smsResponse = getResponse(http.postJson(url, headers, body), jsonKey); smsResponse = getResponse(http.postJson(url, headers, body), jsonKey);
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.message, config.getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
@ -136,10 +135,6 @@ public class JgSmsImpl extends AbstractSmsBlend<JgConfig> {
} }
private SmsResponse getResponse(JSONObject resJson, String jsonKey) { private SmsResponse getResponse(JSONObject resJson, String jsonKey) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, resJson.getObj(jsonKey) != null, getConfigId());
smsResponse.setSuccess(resJson.getObj(jsonKey) != null);
smsResponse.setData(resJson);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -3,6 +3,8 @@ package org.dromara.sms4j.lianlu.service;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -177,8 +179,8 @@ public class LianLuSmsImpl extends AbstractSmsBlend<LianLuConfig> {
try { try {
Map<String, String> headers = new HashMap<>(2); Map<String, String> headers = new HashMap<>(2);
headers.put("Content-Type", "application/json;charset=utf-8"); headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8);
headers.put("Accept", "application/json"); headers.put("Accept", Constant.ACCEPT);
SmsResponse smsResponse = this.getResponse(this.http.postJson(reqUrl, headers, requestBody)); SmsResponse smsResponse = this.getResponse(this.http.postJson(reqUrl, headers, requestBody));
if (!smsResponse.isSuccess() && this.retry != this.getConfig().getMaxRetries()) { if (!smsResponse.isSuccess() && this.retry != this.getConfig().getMaxRetries()) {
return this.requestRetry(req); return this.requestRetry(req);
@ -199,10 +201,6 @@ public class LianLuSmsImpl extends AbstractSmsBlend<LianLuConfig> {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "00".equals(resJson.getStr("status")), getConfigId());
smsResponse.setSuccess("00".equals(resJson.getStr("status")));
smsResponse.setData(resJson);
smsResponse.setConfigId(this.getConfigId());
return smsResponse;
} }
} }

View File

@ -5,6 +5,7 @@ import cn.hutool.json.JSONObject;
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.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -94,9 +95,7 @@ public class MasSmsImpl extends AbstractSmsBlend<MasConfig> {
try { try {
smsResponse = getResponse(http.postJson(requestUrl, null, base64Code)); smsResponse = getResponse(http.postJson(requestUrl, null, base64Code));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -113,11 +112,7 @@ public class MasSmsImpl extends AbstractSmsBlend<MasConfig> {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "success".equals(resJson.getStr("rspcod")) && resJson.getBool("success"), getConfigId());
smsResponse.setSuccess("success".equals(resJson.getStr("rspcod")) && resJson.getBool("success"));
smsResponse.setData(resJson);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -9,6 +9,7 @@ import cn.hutool.json.JSONObject;
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.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
@ -142,9 +143,7 @@ public class NeteaseSmsImpl extends AbstractSmsBlend<NeteaseConfig> {
try { try {
smsResponse = getResponse(http.postFrom(requestUrl, headers, body)); smsResponse = getResponse(http.postFrom(requestUrl, headers, body));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -161,11 +160,7 @@ public class NeteaseSmsImpl extends AbstractSmsBlend<NeteaseConfig> {
} }
private SmsResponse getResponse(JSONObject jsonObject) { private SmsResponse getResponse(JSONObject jsonObject) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(jsonObject, jsonObject.getInt("code") <= 200, getConfigId());
smsResponse.setSuccess(jsonObject.getInt("code") <= 200);
smsResponse.setData(jsonObject);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -1,11 +1,13 @@
package org.dromara.sms4j.qiniu.service; package org.dromara.sms4j.qiniu.service;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.utils.SmsUtils;
import org.dromara.sms4j.provider.service.AbstractSmsBlend; import org.dromara.sms4j.provider.service.AbstractSmsBlend;
import org.dromara.sms4j.qiniu.config.QiNiuConfig; import org.dromara.sms4j.qiniu.config.QiNiuConfig;
import org.dromara.sms4j.qiniu.util.QiNiuUtils; import org.dromara.sms4j.qiniu.util.QiNiuUtils;
@ -71,7 +73,6 @@ public class QiNiuSmsImpl extends AbstractSmsBlend<QiNiuConfig> {
return senMassMsg(phones, templateId, messages); return senMassMsg(phones, templateId, messages);
} }
/** /**
* @return SmsResponse * @return SmsResponse
* @author 初拥 * @author 初拥
@ -79,11 +80,14 @@ public class QiNiuSmsImpl extends AbstractSmsBlend<QiNiuConfig> {
* @Description: 统一处理返回结果 * @Description: 统一处理返回结果
*/ */
public SmsResponse handleRes(String url, HashMap<String, Object> params) { public SmsResponse handleRes(String url, HashMap<String, Object> params) {
JSONObject jsonObject = http.postJson(url, QiNiuUtils.getHeaderAndSign(url, params, getConfig()), params); JSONObject jsonObject;
SmsResponse smsResponse = new SmsResponse(); SmsResponse smsResponse;
smsResponse.setSuccess(ObjectUtil.isEmpty(jsonObject.getStr("error"))); try {
smsResponse.setData(jsonObject); jsonObject = http.postJson(url, QiNiuUtils.getHeaderAndSign(url, params, getConfig()), params);
smsResponse.setConfigId(getConfigId()); smsResponse = SmsRespUtils.resp(jsonObject, SmsUtils.isEmpty(jsonObject.getStr("error")), getConfigId());
}catch (SmsBlendException e){
smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
}
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
return smsResponse; return smsResponse;

View File

@ -5,6 +5,7 @@ import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
@ -88,9 +89,7 @@ public class TencentSmsImpl extends AbstractSmsBlend<TencentConfig> {
try { try {
smsResponse = getResponse(http.postJson(url, headsMap, requestBody)); smsResponse = getResponse(http.postJson(url, headsMap, requestBody));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -107,15 +106,12 @@ public class TencentSmsImpl extends AbstractSmsBlend<TencentConfig> {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse();
JSONObject response = resJson.getJSONObject("Response"); JSONObject response = resJson.getJSONObject("Response");
// 根据 Error 判断是否配置错误 // 根据 Error 判断是否配置错误
String error = response.getStr("Error"); boolean success = StrUtil.isBlank(response.getStr("Error"));
smsResponse.setSuccess(StrUtil.isBlank(error));
// 根据 SendStatusSet 判断是否不为Ok // 根据 SendStatusSet 判断是否不为Ok
JSONArray sendStatusSet = response.getJSONArray("SendStatusSet"); JSONArray sendStatusSet = response.getJSONArray("SendStatusSet");
if (sendStatusSet != null) { if (sendStatusSet != null) {
boolean success = true;
for (Object obj : sendStatusSet) { for (Object obj : sendStatusSet) {
JSONObject jsonObject = (JSONObject) obj; JSONObject jsonObject = (JSONObject) obj;
String code = jsonObject.getStr("Code"); String code = jsonObject.getStr("Code");
@ -124,11 +120,8 @@ public class TencentSmsImpl extends AbstractSmsBlend<TencentConfig> {
break; break;
} }
} }
smsResponse.setSuccess(success);
} }
smsResponse.setData(resJson); return SmsRespUtils.resp(resJson, success, getConfigId());
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }

View File

@ -6,7 +6,6 @@ import org.dromara.sms4j.comm.exception.SmsBlendException;
import java.util.Objects; import java.util.Objects;
public class UniResponse { public class UniResponse {
public static final String REQUEST_ID_HEADER_KEY = "x-uni-request-id";
public String requestId; public String requestId;
public String code; public String code;
public String message; public String message;

View File

@ -3,6 +3,7 @@ package org.dromara.sms4j.unisms.service;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -96,16 +97,12 @@ public class UniSmsImpl extends AbstractSmsBlend<UniConfig> {
} }
private SmsResponse getSmsResponse(Map<String, Object> data) { private SmsResponse getSmsResponse(Map<String, Object> data) {
SmsResponse smsResponse = new SmsResponse();
try { try {
UniResponse send = Uni.getClient(getConfig().getRetryInterval(), getConfig().getMaxRetries()).request("sms.message.send", data); UniResponse send = Uni.getClient(getConfig().getRetryInterval(), getConfig().getMaxRetries()).request("sms.message.send", data);
smsResponse.setSuccess("0".equals(send.code)); return SmsRespUtils.resp(send, "0".equals(send.code), getConfigId());
smsResponse.setData(send);
smsResponse.setConfigId(getConfigId());
} catch (Exception e) { } catch (Exception e) {
smsResponse.setSuccess(false); return SmsRespUtils.error(e.getMessage(), getConfigId());
} }
return smsResponse;
} }
} }

View File

@ -3,6 +3,7 @@ package org.dromara.sms4j.yunpian.service;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
@ -40,15 +41,10 @@ public class YunPianSmsImpl extends AbstractSmsBlend<YunpianConfig> {
} }
private SmsResponse getResponse(JSONObject execute) { private SmsResponse getResponse(JSONObject execute) {
SmsResponse smsResponse = new SmsResponse();
if (execute == null) { if (execute == null) {
smsResponse.setSuccess(false); return SmsRespUtils.error(getConfigId());
return smsResponse;
} }
smsResponse.setSuccess(execute.getInt("code") == 0); return SmsRespUtils.resp(execute, execute.getInt("code") == 0, getConfigId());
smsResponse.setData(execute);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
@Override @Override
@ -60,9 +56,7 @@ public class YunPianSmsImpl extends AbstractSmsBlend<YunpianConfig> {
try { try {
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) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;

View File

@ -10,6 +10,7 @@ import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
@ -152,9 +153,7 @@ public class ZhutongSmsImpl extends AbstractSmsBlend<ZhutongConfig> {
try { try {
smsResponse = getResponse(http.postJson(url, headers, json)); smsResponse = getResponse(http.postJson(url, headers, json));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -240,9 +239,7 @@ public class ZhutongSmsImpl extends AbstractSmsBlend<ZhutongConfig> {
try { try {
smsResponse = getResponse(http.postJson(url, headers, requestJson.toString())); smsResponse = getResponse(http.postJson(url, headers, requestJson.toString()));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -263,11 +260,7 @@ public class ZhutongSmsImpl extends AbstractSmsBlend<ZhutongConfig> {
} }
private SmsResponse getResponse(JSONObject jsonObject) { private SmsResponse getResponse(JSONObject jsonObject) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(jsonObject, jsonObject.getInt("code", -1) <= 200, getConfigId());
smsResponse.setSuccess(jsonObject.getInt("code", -1) <= 200);
smsResponse.setData(jsonObject);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
private void validator(String requestUrl, String username, String password) { private void validator(String requestUrl, String username, String password) {

View File

@ -4,6 +4,7 @@ import cn.hutool.json.JSONObject;
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.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.api.utils.SmsRespUtils;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.utils.SmsUtils; import org.dromara.sms4j.comm.utils.SmsUtils;
@ -90,9 +91,7 @@ public class ZhangJunSmsImpl extends AbstractSmsBlend<ZhangJunConfig> {
try { try {
smsResponse = getResponse(http.postJson(getConfig().getUrl(), null, message)); smsResponse = getResponse(http.postJson(getConfig().getUrl(), null, message));
} catch (SmsBlendException e) { } catch (SmsBlendException e) {
smsResponse = new SmsResponse(); smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId());
smsResponse.setSuccess(false);
smsResponse.setData(e.getMessage());
} }
if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) {
retry = 0; retry = 0;
@ -109,11 +108,7 @@ public class ZhangJunSmsImpl extends AbstractSmsBlend<ZhangJunConfig> {
} }
private SmsResponse getResponse(JSONObject resJson) { private SmsResponse getResponse(JSONObject resJson) {
SmsResponse smsResponse = new SmsResponse(); return SmsRespUtils.resp(resJson, "OK".equals(resJson.getStr("Code")), getConfigId());
smsResponse.setSuccess("OK".equals(resJson.getStr("Code")));
smsResponse.setData(resJson);
smsResponse.setConfigId(getConfigId());
return smsResponse;
} }
} }