From 3be4e34d6b043491d54f9844038a2d45ea7746e9 Mon Sep 17 00:00:00 2001 From: wind Date: Sun, 27 Apr 2025 21:38:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=85=BE=E8=AE=AF=E4=BA=91=EF=BC=8C=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E5=BC=BA=E5=88=B6=E5=8F=91=E9=80=81+86=E5=8F=B7?= =?UTF-8?q?=E7=A0=81=EF=BC=8C=E5=A6=82=E6=9E=9C=E9=9C=80=E8=A6=81=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=9D=9E+86=E6=89=8B=E6=9C=BA=EF=BC=8C=E5=8F=AF?= =?UTF-8?q?=E5=9C=A8=E6=89=8B=E6=9C=BA=E5=8F=B7=E5=89=8D=E6=8B=BC=E6=8E=A5?= =?UTF-8?q?=20-=20=E5=8F=B7=EF=BC=8C=E8=A1=A8=E7=A4=BA=E4=B8=8D=E5=BC=BA?= =?UTF-8?q?=E5=88=B6=E6=B7=BB=E5=8A=A0+86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sms4j/tencent/service/TencentSmsImpl.java | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) 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) {