java 集成腾讯云发送短信
首先申请一个腾讯云的账户,登陆后访问以下网址
https://console.cloud.tencent.com/sms
新建一个应用
查看SDK AppID和App Key
设置常量 SMSContentUtil中常量皆由腾讯云中申请
服务类代码
package com.util;
import com.github.qcloudsms.*;
import com.github.qcloudsms.httpclient.HTTPException;
import org.json.JSONException;
import java.io.IOException;
/**
* 短信服务类
* 2018-05-16
*/
public class SMSService {
/**
* 自定义短信内容发送
* @param msg 短信内容
* @param number 用户手机号
* @return OK 成功 null 失败
*/
public static String sendMess(String msg , String number){
try {
SmsSingleSender ssender = new SmsSingleSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
SmsSingleSenderResult result = ssender.send(0, "86", number,
msg, "", "");
System.out.print(result);
return result.errMsg;
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}
return null;
}
/**
* 指定模板ID发送短信
* @param number 用户手机号
* @return OK 成功 null 失败
*/
public static String sendMesModel(String number){
try {
String[] params = {"hello" , "1" };//{参数}
SmsSingleSender ssender = new SmsSingleSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
SmsSingleSenderResult result = ssender.sendWithParam("86", number,
SMSContentUtil.TTEMPLATEID, params, SMSContentUtil.SMSSIGN, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
System.out.print(result);
return result.errMsg;//OK
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}
return null;
}
/**
* 群发自定义短信
* @param msg 短信内容
* @param numbers 用户手机号数组
* @return OK 成功 null 失败
*/
public static String sendMesModel(String msg , String[] numbers){
try {
SmsMultiSender msender = new SmsMultiSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
SmsMultiSenderResult result = msender.send(0, "86", numbers,
msg, "", "");
System.out.print(result);
return result.errMsg;
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}
return null;
}
/**
* 指定模板ID群发
* @param numbers 用户手机号数组
* @return OK 成功 null 失败
*/
public static String sendMesModel(String[] numbers){
try {
String[] params = {"hello" , "1" };
SmsMultiSender msender = new SmsMultiSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
SmsMultiSenderResult result = msender.sendWithParam("86", numbers,
SMSContentUtil.TTEMPLATEID, params, SMSContentUtil.SMSSIGN, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
System.out.print(result);
return result.errMsg;
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}
return null;
}
/**
* 发送语音消息
* @param number 用户手机号
* @param msg 语音消息内容
* @return OK 成功 null 失败
*/
public static String sendMesVoice(String msg , String number){
try {
SmsVoiceVerifyCodeSender vvcsender = new SmsVoiceVerifyCodeSender(SMSContentUtil.APPID, SMSContentUtil.APPKEY);
SmsVoiceVerifyCodeSenderResult result = vvcsender.send("86",number,
msg, 2, "");
System.out.print(result);
return result.errMsg;
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}
return null;
}
}
- 机器学习实战 | 第四章:模型验证和选择
- ofbiz中FreeMarkerWorker的makeConfiguration方法
- 后台进程(守护进程)自动备份PostgreSQL数据库
- 了解这些PHP小技巧吗?
- 结构体字节对齐
- 在Atom中设置Python开发环境
- Assignment 3 (神经网络) | 斯坦福CS231n-深度学习与计算机视觉课程
- ofbiz view渲染处理机制
- ofbiz方法一 条件查询createConditionList
- ofbiz的ant命令创建模块
- 几个不常用但特别实用的PHP预定义变量
- tomcat源码解读六 tomcat中的session生命历程
- tomcat源码解读五 Tomcat中Request的生命历程
- PostQueuedCompletionStatus
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 【笔记】《C++Primer》—— 第16章:模板与泛型编程
- 【笔记】《C++Primer》—— 第19章:特殊工具与技术
- 【翻译】C++14的新特性简介
- Python 为什么要有 pass 语句?
- 【翻译】C++17的新特性简介
- 各类SQL日期时间处理方法
- 这可能是最全最实用的Vim操作集合
- 个人珍藏的80道多线程并发面试题(1-10答案解析)
- 理解DOM Diff算法
- 腾讯云ES集群通过COS实现跨地域备份与恢复
- Thymeleaf一篇就够了
- python scipy.stats实现各种常见的统计分布
- 操作系统基础 - 文件系统
- Linux升级OpenSSH修复高危漏洞
- Pytest之收集用例及命令行参数