基于腾讯云短信通知
先导入依赖:
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>
发送短信工具类:
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import org.json.JSONException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class NoteUtil {
public static Map<String, Object> sendNote(String[] params ,String[] phoneNumbers){
try {
SmsSingleSender ssender = new SmsSingleSender("AppId","Appkey");
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],
"TemplateId", params, "SmsSignId", "", "");
Map<String, Object> map = new HashMap<String, Object>();
map.put("noteCode",result.result);
map.put("noteResult",result.errMsg);
return map;
} catch (HTTPException e) {
// HTTP 响应码错误
Map<String, Object> map = new HashMap<String, Object>();
map.put("noteCode","1");
map.put("noteResult","响应码错误");
return map;
} catch (JSONException e) {
// JSON 解析错误
Map<String, Object> map = new HashMap<String, Object>();
map.put("noteCode","2");
map.put("noteResult","JSON 解析错误");
return map;
} catch (IOException e) {
// 网络 IO 错误
Map<String, Object> map = new HashMap<String, Object>();
map.put("noteCode","3");
map.put("noteResult","网络 IO 错误");
return map;
}
}
}
其中"AppId"和"Appkey"是需要登录腾讯云后在短信控制台申请的账号,地址如下:添加链接描述
TemplateId是准备用的短信模板,SmsSignId是准备用的短信标签,模板id和标签id都是需要在腾讯云平台申请后才能获取的,申请地址同上。
phoneNumbers就是传入要发送的电话号码了,其中params是根据你设计的短信模板传入的,如只是发送验证码,则不需要传入参数,如需在短信中传入数值则需按模板顺序传入参数。这样就可以直接发送短信了。(新注册的用户可免费发送100条短信,相比其他平台还是很多了。)