mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-06 08:58:38 +08:00
修复华为阿里云片短信的致命错误,该错误导致自定义模板id使用的还是配置文件中的ID
This commit is contained in:
parent
203862a102
commit
c1e0f23d00
@ -68,7 +68,7 @@ public class AlibabaSmsImpl implements SmsBlend {
|
||||
SendSmsRequest sendSmsRequest = new SendSmsRequest();
|
||||
String s = JSONObject.toJSONString(messages);
|
||||
sendSmsRequest.setPhoneNumbers(phone)
|
||||
.setTemplateCode(alibabaSmsConfig.getTemplateId())
|
||||
.setTemplateCode(templateId)
|
||||
.setTemplateParam(s)
|
||||
.setSignName(alibabaSmsConfig.getSignature());
|
||||
RuntimeOptions runtime = new RuntimeOptions();
|
||||
@ -108,7 +108,7 @@ public class AlibabaSmsImpl implements SmsBlend {
|
||||
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
|
||||
SendBatchSmsRequest sendBatchSmsRequest = new SendBatchSmsRequest();
|
||||
sendBatchSmsRequest.setPhoneNumberJson(JSONObject.toJSONString(phones))//群发的手机号
|
||||
.setTemplateCode(alibabaSmsConfig.getTemplateId())//模板id
|
||||
.setTemplateCode(templateId)//模板id
|
||||
.setTemplateParamJson(JSONObject.toJSONString(messages))//消息内容
|
||||
.setSignNameJson(alibabaSmsConfig.getSignature());//短信签名
|
||||
RuntimeOptions runtime = new RuntimeOptions();
|
||||
|
||||
@ -52,7 +52,7 @@ public class HuaweiSmsImpl implements SmsBlend {
|
||||
list.add(entry.getValue());
|
||||
}
|
||||
String mess = listToString(list);
|
||||
String requestBody = HuaweiBuilder.buildRequestBody(config.getSender(), phone, config.getTemplateId(), mess, config.getStatusCallBack(), config.getSignature());
|
||||
String requestBody = HuaweiBuilder.buildRequestBody(config.getSender(), phone, templateId, mess, config.getStatusCallBack(), config.getSignature());
|
||||
Map<String,String> headers = new LinkedHashMap<>();
|
||||
headers.put("Authorization",Constant.HUAWEI_AUTH_HEADER_VALUE);
|
||||
headers.put("X-WSSE",HuaweiBuilder.buildWsseHeader(config.getAppKey(), config.getAppSecret()));
|
||||
|
||||
@ -27,28 +27,39 @@ public class YunPianSmsImpl implements SmsBlend {
|
||||
|
||||
private ForestConfiguration http;
|
||||
|
||||
private static SmsResponse getSmsResponse(JSONObject execute) {
|
||||
SmsResponse smsResponse = new SmsResponse();
|
||||
smsResponse.setCode(execute.getString("code"));
|
||||
smsResponse.setMessage(execute.getString("msg"));
|
||||
smsResponse.setBizId(execute.getString("sid"));
|
||||
if (execute.getInteger("code") != 0) {
|
||||
smsResponse.setErrMessage(execute.getString("msg"));
|
||||
}
|
||||
smsResponse.setData(execute);
|
||||
return smsResponse;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Restricted
|
||||
public SmsResponse sendMessage(String phone, String message) {
|
||||
Map<String, String> body = setBody(phone, message, null);
|
||||
Map<String, String> body = setBody(phone, message, null, config.getTemplateId());
|
||||
return getSendResponse(body);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Restricted
|
||||
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
|
||||
Map<String, String> body = setBody(phone, "", messages);
|
||||
Map<String, String> body = setBody(phone, "", messages,templateId);
|
||||
return getSendResponse(body);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Restricted
|
||||
public SmsResponse massTexting(List<String> phones, String message) {
|
||||
if (phones.size() > 1000) {
|
||||
throw new SmsBlendException("单次发送超过最大发送上限,建议每次群发短信人数低于1000");
|
||||
}
|
||||
return sendMessage(listToString(phones),message);
|
||||
return sendMessage(listToString(phones), message);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -149,7 +160,7 @@ public class YunPianSmsImpl implements SmsBlend {
|
||||
return str.toString();
|
||||
}
|
||||
|
||||
private Map<String, String> setBody(String phone, String mes, LinkedHashMap<String, String> messages) {
|
||||
private Map<String, String> setBody(String phone, String mes, LinkedHashMap<String, String> messages, String tplId) {
|
||||
LinkedHashMap<String, String> message = new LinkedHashMap<>();
|
||||
if (mes.isEmpty()) {
|
||||
message = messages;
|
||||
@ -159,7 +170,7 @@ public class YunPianSmsImpl implements SmsBlend {
|
||||
Map<String, String> body = new HashMap<>();
|
||||
body.put("apikey", config.getApikey());
|
||||
body.put("mobile", phone);
|
||||
body.put("tpl_id", config.getTemplateId());
|
||||
body.put("tpl_id", tplId);
|
||||
body.put("tpl_value", formattingMap(message));
|
||||
if (!config.getCallbackUrl().isEmpty()) body.put("callback_url", config.getCallbackUrl());
|
||||
return body;
|
||||
@ -172,30 +183,17 @@ public class YunPianSmsImpl implements SmsBlend {
|
||||
return headers;
|
||||
}
|
||||
|
||||
|
||||
private static SmsResponse getSmsResponse(JSONObject execute) {
|
||||
SmsResponse smsResponse = new SmsResponse();
|
||||
smsResponse.setCode(execute.getString("code"));
|
||||
smsResponse.setMessage(execute.getString("msg"));
|
||||
smsResponse.setBizId(execute.getString("sid"));
|
||||
if (execute.getInteger("code") != 0) {
|
||||
smsResponse.setErrMessage(execute.getString("msg"));
|
||||
}
|
||||
smsResponse.setData(execute);
|
||||
return smsResponse;
|
||||
}
|
||||
|
||||
private SmsResponse getSendResponse(Map<String, String> body) {
|
||||
Map<String, String> headers = getHeaders();
|
||||
AtomicReference<SmsResponse> smsResponse = null;
|
||||
http.post(Constant.YUNPIAN_URL + "/sms/tpl_single_send.json")
|
||||
.addHeader(headers)
|
||||
.addBody(body)
|
||||
.onSuccess(((data,req,res)->{
|
||||
.onSuccess(((data, req, res) -> {
|
||||
JSONObject jsonBody = res.get(JSONObject.class);
|
||||
smsResponse.set(getSmsResponse(jsonBody));
|
||||
}))
|
||||
.onError((ex,req,res)->{
|
||||
.onError((ex, req, res) -> {
|
||||
JSONObject jsonBody = res.get(JSONObject.class);
|
||||
smsResponse.set(getSmsResponse(jsonBody));
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user