腾讯云短信服务的申请和验证使用详细流程

项目中用到短信验证功能,看到腾讯云有短信服务,就直接使用了,当然其它公司也会停工短信服务,百度可以找到很多,使用的情况应该大同小异,这里就以腾讯云的短信服务为例,说明一下短信服务的申请和使用。

1 短信服务申请

登录腾讯云之后,在云产品里面选择移动和通信,短信。这里附上腾讯云短信地址

在弹出的界面,点击添加应用。

在弹出的窗口,填写应用名称和应用简介

填写完成之后,平台会为我们的应用创建一条应用,点击项目名称“短信测试项目”。

进入之后,里面有两个非常重要的参数appid和appkey,这两个参数会在程序中用到。

有了以上两个参数,就可以发短信了,下面就是要配置短信的内容模板,点击上面的国内短信。

然后依次点击短信内容配置—短信签名—创建签名,之后会弹出一个创建短信签名的窗口,需要填写相关信息。

其中红色方框的签名内容,就是短信内容中一开始的签名。这部分填写之后需要腾讯审核,如果材料没问题,审核会很快通过,如果没有通过,就看他们给的失败信息。比如我用的是个人账号,签名类型就需要选择他用,除了需要公司的营业执照,还需要公司的授权书,他们给提供格式,需要公司盖章。完成之后点击确认,会在短信签名下方生成一条短信签名信息。

短信签名通过之后,需要编辑典型正文,点击上方的短信正文。

点击创建正文模板,然后会弹出正文模板的窗口。

此处,模板名称和申请说明可正常填写,重点看一下短信内容的填写,有一个模板示例,按照示例填写。确认。为了避免不合法信息,腾讯也是要审核的,这个审核速度也很快。

在短信正文下方也会生成一条信息。

注意这个地方,红色方框处有一个ID,这也是一个很重要的参数,程序中也会用到,在程序中为templateID,也就是模板ID。

2 程序代码

使用java编写代码,参考地址为https://cloud.tencent.com/document/product/382/13613,程序可分为两部分,一个是maven引入,一个是main函数测试。

Maven部分

代码语言:txt
复制
<dependency>

  <groupId>com.github.qcloudsms</groupId>

  <artifactId>qcloudsms</artifactId>

  <version>1.0.6</version>

</dependency>

代码部分

代码语言:txt
复制
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包中,随机码也需要写程序生成。