腾讯云,不再强制发送+86号码,如果需要发送非+86手机,可在手机号前拼接 - 号,表示不强制添加+86

This commit is contained in:
wind 2025-04-27 21:38:55 +08:00
parent 9baa8bba57
commit 3be4e34d6b

View File

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