diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/service/AlibabaSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/service/AlibabaSmsImpl.java index 9efddcca..7f210c18 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/service/AlibabaSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/service/AlibabaSmsImpl.java @@ -112,6 +112,11 @@ public class AlibabaSmsImpl implements SmsBlend { private static SmsResponse getResponse(Map map) { SmsResponse smsResponse = new SmsResponse(); + if (map == null){ + smsResponse.setErrorCode("500"); + smsResponse.setErrMessage("aliyun send sms response is null.check param"); + return smsResponse; + } smsResponse.setCode((String) map.get("Code")); smsResponse.setMessage((String) map.get("Message")); if ("OK".equals(smsResponse.getCode())){ diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/emay/service/EmaySmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/emay/service/EmaySmsImpl.java index aee313af..f10cb8eb 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/emay/service/EmaySmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/emay/service/EmaySmsImpl.java @@ -179,6 +179,11 @@ public class EmaySmsImpl implements SmsBlend { private static SmsResponse getSmsResponse(JSONObject execute) { SmsResponse smsResponse = new SmsResponse(); + if (execute == null ){ + smsResponse.setErrorCode("500"); + smsResponse.setErrMessage("emay send sms response is null.check param"); + return smsResponse; + } String code = execute.getString("code"); if (StringUtils.isEmpty(code)) { smsResponse.setErrorCode("emay response code is null"); diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/service/HuaweiSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/service/HuaweiSmsImpl.java index 971f98c9..78dfa46f 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/service/HuaweiSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/service/HuaweiSmsImpl.java @@ -40,9 +40,9 @@ public class HuaweiSmsImpl implements SmsBlend { @Override @Restricted public SmsResponse sendMessage(String phone, String message) { - LinkedHashMap mes = new LinkedHashMap<>(); - mes.put(UUID.randomUUID().toString().replaceAll("-",""),message); - return sendMessage(phone,config.getTemplateId(),mes); + LinkedHashMap mes = new LinkedHashMap<>(); + mes.put(UUID.randomUUID().toString().replaceAll("-", ""), message); + return sendMessage(phone, config.getTemplateId(), mes); } @Override @@ -55,26 +55,30 @@ public class HuaweiSmsImpl implements SmsBlend { } String mess = listToString(list); String requestBody = HuaweiBuilder.buildRequestBody(config.getSender(), phone, templateId, mess, config.getStatusCallBack(), config.getSignature()); - Map headers = new LinkedHashMap<>(); - headers.put("Authorization",Constant.HUAWEI_AUTH_HEADER_VALUE); - headers.put("X-WSSE",HuaweiBuilder.buildWsseHeader(config.getAppKey(), config.getAppSecret())); - headers.put("Content-Type",Constant.FROM_URLENCODED); + Map headers = new LinkedHashMap<>(); + headers.put("Authorization", Constant.HUAWEI_AUTH_HEADER_VALUE); + headers.put("X-WSSE", HuaweiBuilder.buildWsseHeader(config.getAppKey(), config.getAppSecret())); + headers.put("Content-Type", Constant.FROM_URLENCODED); SmsResponse smsResponse = new SmsResponse(); http.post(url) .addHeader(headers) .addBody(requestBody) - .onSuccess(((data,req,res)->{ + .onSuccess(((data, req, res) -> { HuaweiResponse jsonBody = res.get(HuaweiResponse.class); smsResponse.setCode(jsonBody.getCode()); smsResponse.setMessage(jsonBody.getDescription()); smsResponse.setBizId(jsonBody.getResult().get(0).getSmsMsgId()); smsResponse.setData(jsonBody.getResult()); })) - .onError((ex,req,res)->{ + .onError((ex, req, res) -> { HuaweiResponse huaweiResponse = res.get(HuaweiResponse.class); - smsResponse.setErrMessage(huaweiResponse.getDescription()); - smsResponse.setErrorCode(huaweiResponse.getCode()); - log.debug(huaweiResponse.getDescription()); + if (huaweiResponse == null) { + smsResponse.setErrorCode("500"); + smsResponse.setErrMessage("huawei send sms response is null.check param"); + } else { + smsResponse.setErrMessage(huaweiResponse.getDescription()); + smsResponse.setErrorCode(huaweiResponse.getCode()); + } }) .execute(); return smsResponse; @@ -83,7 +87,7 @@ public class HuaweiSmsImpl implements SmsBlend { @Override @Restricted public SmsResponse massTexting(List phones, String message) { - return sendMessage(listToString(phones),message); + return sendMessage(listToString(phones), message); } @Override diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java index 3caeeafd..af8397d0 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java @@ -108,10 +108,15 @@ public class TencentSmsImpl implements SmsBlend { })) .onError((ex, req, res) -> { JSONObject jsonBody = res.get(JSONObject.class); - JSONObject response = jsonBody.getJSONObject("Response"); - JSONArray sendStatusSet = response.getJSONArray("SendStatusSet"); - smsResponse.setErrMessage(sendStatusSet.getJSONObject(0).getString("Message")); - smsResponse.setErrorCode(sendStatusSet.getJSONObject(0).getString("Code")); + if (jsonBody == null) { + smsResponse.setErrorCode("500"); + smsResponse.setErrMessage("tencent send sms response is null.check param"); + } else { + JSONObject response = jsonBody.getJSONObject("Response"); + JSONArray sendStatusSet = response.getJSONArray("SendStatusSet"); + smsResponse.setErrMessage(sendStatusSet.getJSONObject(0).getString("Message")); + smsResponse.setErrorCode(sendStatusSet.getJSONObject(0).getString("Code")); + } }) .execute(); return smsResponse; diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/service/YunPianSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/service/YunPianSmsImpl.java index e75b775c..b27bdfcf 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/service/YunPianSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/service/YunPianSmsImpl.java @@ -37,6 +37,11 @@ public class YunPianSmsImpl implements SmsBlend { private static SmsResponse getSmsResponse(JSONObject execute) { SmsResponse smsResponse = new SmsResponse(); + if (execute == null){ + smsResponse.setErrorCode("500"); + smsResponse.setErrMessage("yunpian send sms response is null.check param"); + return smsResponse; + } smsResponse.setCode(execute.getString("code")); smsResponse.setMessage(execute.getString("msg")); smsResponse.setBizId(execute.getString("sid"));