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 c92b789b..4e2dc76f 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 @@ -1,5 +1,6 @@ package org.dromara.sms4j.tencent.service; +import cn.hutool.core.collection.ListUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; @@ -15,6 +16,8 @@ import org.dromara.sms4j.provider.service.AbstractSmsBlend; import org.dromara.sms4j.tencent.config.TencentConfig; import org.dromara.sms4j.tencent.utils.TencentUtils; +import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -53,7 +56,13 @@ public class TencentSmsImpl extends AbstractSmsBlend { @Override public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap messages) { - return getSmsResponse(new String[]{StrUtil.addPrefixIfNot(phone, "+86")}, SmsUtils.toArray(messages), templateId); + // 如果包含 - 的话,则认为是国际短信 ,不进行+86拼接 + if (phone.contains("-")) { + String result = phone.replace("-", ""); + return getSmsResponse(new String[]{result}, SmsUtils.toArray(messages), templateId); + } else { + return getSmsResponse(new String[]{StrUtil.addPrefixIfNot(phone, "+86")}, SmsUtils.toArray(messages), templateId); + } } @Override @@ -63,7 +72,16 @@ public class TencentSmsImpl extends AbstractSmsBlend { @Override public SmsResponse massTexting(List phones, String templateId, LinkedHashMap messages) { - return getSmsResponse(SmsUtils.addCodePrefixIfNotToArray(phones), SmsUtils.toArray(messages), templateId); + List list = new ArrayList<>(); + for (String phone : phones) { + if (phone.contains("-")) { + String result = phone.replace("-", ""); + list.add(result); + } else { + list.add(StrUtil.addPrefixIfNot(phone, "+86")); + } + } + return getSmsResponse(list.toArray(new String[0]), SmsUtils.toArray(messages), templateId); } private SmsResponse getSmsResponse(String[] phones, String[] messages, String templateId) {