200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java 发短信_java实现发短信功能---腾讯云短信

java 发短信_java实现发短信功能---腾讯云短信

时间:2019-06-18 15:28:13

相关推荐

java 发短信_java实现发短信功能---腾讯云短信

pom.xml引入依赖

1.8

1.0.6

com.github.qcloudsms

qcloudsms

${tencent.qcloudsms.version}

发送短信工具类

package mon.utils;

import com.github.qcloudsms.*;

import com.github.qcloudsms.httpclient.HTTPException;

import mon.entity.CmsMessageConfig;

import mon.exception.CustomException;

import mon.form.MessageForm;

import org.json.JSONException;

import java.io.IOException;

/**

* 发送短信工具类

* @author Wayne

* @date /6/26

*/

public class MessageUtils {

/**

* 按模板发送短信 支持单发和群发

* @param isSingle 是否单发 true: 单发,false: 群发

* @param form 需要发送的短信内容及收信人手机号

* @param config 短信配置

* @throws CustomException 发送失败时捕获的异常信息

*/

public static void sendMessage(Boolean isSingle, MessageForm form, CmsMessageConfig config) throws CustomException {

validateMessage(form, config);

String regex = ";";

String[] params = {form.getCaptcha()};

String[] phoneNumbers = form.getMobiles().split(regex);

SmsResultBase result;

try {

// 是否单发

if (isSingle) {

SmsSingleSender ssender = new SmsSingleSender(config.getAppId(), config.getAppKey());

result = ssender.sendWithParam("86", phoneNumbers[0], config.getTemplateId(), params, config.getSmsSign(), "", "");

} else {

SmsMultiSender msender = new SmsMultiSender(config.getAppId(), config.getAppKey());

result = msender.sendWithParam("86", phoneNumbers, config.getTemplateId(), params, config.getSmsSign(), "", "");

}

System.out.println(result);

} catch (HTTPException e) {

e.printStackTrace();

throw new CustomException("HTTP响应码错误");

} catch (JSONException e) {

e.printStackTrace();

throw new CustomException("json解析错误");

} catch (IOException e) {

e.printStackTrace();

throw new CustomException("网络IO错误");

}

}

/**

* 校验参数

*/

private static void validateMessage(MessageForm messageForm, CmsMessageConfig messageConfig) throws CustomException {

ValidatorUtils.validateEntity(messageForm);

if (null == messageConfig) {

throw new CustomException("系统参数异常");

}

}

}

CmsMessageConfig配置类

package mon.entity;

import lombok.Data;

import javax.persistence.*;

@Data

@Table(name = "cms_message_config")

public class CmsMessageConfig {

/**

* 主键

*/

@Id

@Column(name = "ID")

private Integer id;

/**

* AppID

*/

@Column(name = "APP_ID")

private Integer appId;

/**

* AppKey

*/

@Column(name = "APP_KEY")

private String appKey;

/**

* 短信模板ID

*/

@Column(name = "TEMPLATE_ID")

private Integer templateId;

/**

* 签名内容

*/

@Column(name = "SMS_SIGN")

private String smsSign;

/**

* 是否删除,0:否,1:是

*/

@Column(name = "IS_DELETE")

private String isDelete;

/**

* 状态,0:使用,1:未使用 (同一时间应最多只有一条数据处于使用状态)

*/

@Column(name = "IS_USE")

private String isUse;

/**

* 创建者ID

*/

@Column(name = "CREATE_ADMIN_ID")

private Integer createAdminId;

@Column(name = "EXTEND1")

private String extend1;

@Column(name = "EXTEND2")

private String extend2;

@Column(name = "EXTEND3")

private String extend3;

@Column(name = "EXTEND4")

private String extend4;

@Column(name = "EXTEND5")

private String extend5;

@Column(name = "EXTEND6")

private String extend6;

}

Service

@Override

public ResponseBean sendMessage(MessageForm messageForm) {

ValidatorUtils.validateEntity(messageForm);

// 获取正在使用的短信配置: 此处为 从数据库中查询

CmsMessageConfig messageConfig = getCurrUseMessageConfig();

try {

// 发送短信

MessageUtils.sendMessage(Boolean.FALSE, messageForm, messageConfig);

} catch (CustomException e) {

e.printStackTrace();

return ResponseBean.createInstance(Boolean.FALSE, 401, e.getMessage());

}

return ResponseBean.createInstance();

}

Controller

@PostMapping("/message/sendMessage")

public ResponseBean sendMessage(MessageForm messageForm) {

return messageService.sendMessage(messageForm);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。