Background
发送短信需要第三方短信接口(收费的),这里以诚立业短信接口为例,基于Hutool工具类进行封装,可以直接使用(当然需要你自己买账号)
1、直接上干货 SMSUtil
/**
* 【发送短信工具类】
* 注:基于诚立业短信平台
*/
private static class SMSUtil {
/**
* @param phoneNumber 接口短信的手机号
* @param msg 短信内容
* @return 返回 true | false
*/
public static boolean sendMsg(String phoneNumber, String msg) {
// 诚立业短信接口
String SEND_URL = "https://www.sms-cly.cn/v7/msg/submit.json";
//发短信的账号和密码
String USERNAME = "wlf";
String PASSWORD = "123";
// 前缀签名(这个需要你和人家确定下,内容中是否需要包含固定格式)
String PREFIX = "【歪撒科技】";
msg = PREFIX + msg;
MsgSubmit msgSubmit = MsgSubmit.builder()
.userName(USERNAME)
.sign(SecureUtil.md5(USERNAME + PASSWORD + phoneNumber + msg))
.mobile(phoneNumber)
.content(msg)
.seqid(IdUtil.simpleUUID())
.build();
int status = HttpRequest.post(SEND_URL)
.charset("UTF-8")
.body(JSONUtil.toJsonStr(msgSubmit))
.timeout(20000)
.execute()
.getStatus();
return status == 200;
}
}
2、Maven 依赖
注:idea 使用 lombok 还需要装插件。
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.6.3</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
3、MsgSubmit
package com.cloudansys.util.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 短信提交格式
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MsgSubmit implements Serializable {
private static final long serialVersionUID = 1L;
private String userName; // 用户名
private String sign; // 签名 Md5(userName,passwd,mobile,content)
private String mobile; // 多个号码用英文逗号隔开。最多不超过1万个
private String content; // 短信内容
private String seqid; // 流水号 如果不指定则系统指定.不要带|字符
private String ext; // 扩展号 106码号后面扩展的部分
private String extraData; // 用户扩展数据.报告交付时原样返回.不要带|字符
private Integer isms; // 是否是国际短信 1-是(港澳台国际短信) 0-否(不包含港澳台的国内短信) 默认不填则为否
private String dstime; // 定时时间 时间格式 yyyy-MM-dd HH:mm:ss
}