项目中用到短信验证功能,看到腾讯云有短信服务,就直接使用了,固然其它公司也会停工短信服务,百度能够找到不少,使用的状况应该大同小异,这里就以腾讯云的短信服务为例,说明一下短信服务的申请和使用。java
1 短信服务申请git
登陆腾讯云以后,在云产品里面选择移动和通讯,短信。github
在弹出的界面,点击添加应用。json
在弹出的窗口,填写应用名称和应用简介数组
填写完成以后,平台会为咱们的应用建立一条应用,点击项目名称“短信测试项目”。网络
进入以后,里面有两个很是重要的参数appid和appkey,这两个参数会在程序中用到。app
有了以上两个参数,就能够发短信了,下面就是要配置短信的内容模板,点击上面的国内短信。maven
而后依次点击短信内容配置—短信签名—建立签名,以后会弹出一个建立短信签名的窗口,须要填写相关信息。函数
其中红色方框的签名内容,就是短信内容中一开始的签名。这部分填写以后须要腾讯审核,若是材料没问题,审核会很快经过,若是没有经过,就看他们给的失败信息。好比我用的是我的帐号,签名类型就须要选择他用,除了须要公司的营业执照,还须要公司的受权书,他们给提供格式,须要公司盖章。完成以后点击确认,会在短信签名下方生成一条短信签名信息。测试
短信签名经过以后,须要编辑典型正文,点击上方的短信正文。
点击建立正文模板,而后会弹出正文模板的窗口。
此处,模板名称和申请说明可正常填写,重点看一下短信内容的填写,有一个模板示例,按照示例填写。确认。为了不不合法信息,腾讯也是要审核的,这个审核速度也很快。
在短信正文下方也会生成一条信息。
注意这个地方,红色方框处有一个ID,这也是一个很重要的参数,程序中也会用到,在程序中为templateID,也就是模板ID。
2 程序代码
使用java编写代码,参考地址为https://cloud.tencent.com/document/product/382/13613,程序可分为两部分,一个是maven引入,一个是main函数测试。
Maven部分
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>
代码部分
package com.example.demo.util;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import org.json.JSONException;
import java.io.IOException;
public class QCloudSMS {
public static void main(String[] args) {
// 短信应用SDK AppID
int appid = 1400xxxx; // 1400开头
// 短信应用SDK AppKey
String appkey = "26xxxxf3";
// 须要发送短信的手机号码
String[] phoneNumbers = {"13512345678"};
// 短信模板ID,须要在短信应用中申请
int templateId = 3xxxx9; // NOTE: 真实的模板ID须要在短信控制台中申请
//templateId7839对应的内容是"您的验证码是: {1}"
try {
String[] params = {"5678"};//数组具体的元素个数和模板中变量个数必须一致,例如事例中templateId:5678对应一个变量,参数数组中元素个数也必须是一个
SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],
templateId, params, "", "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
System.out.println(result);
} catch (HTTPException e) {
// HTTP响应码错误
e.printStackTrace();
} catch (JSONException e) {
// json解析错误
e.printStackTrace();
} catch (IOException e) {
// 网络IO错误
e.printStackTrace();
}
}
}
运行程序以后,会在手机上收到一条短信。
3 结语
短信服务申请比较简单,使用也不复杂。在一开始使用的时候仍是有一些坑,好比templateID这个参数,是短信正文的ID,不是短信签名的ID,这个在调试的时候也走了弯路。
短信发送程序,在实际使用的时候,发送模块放到util包中,随机码也须要写程序生成。