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

1 短信服务申请

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第1张

 

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第2张

 

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

腾讯云短信服务的申请和验证使用详细流程 随笔 第3张

 

 

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第4张

 

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第5张

 

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第6张

 

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第7张

 

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第8张

 

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第9张

 

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第10张

 

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

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

 腾讯云短信服务的申请和验证使用详细流程 随笔 第11张

 

注意这个地方,红色方框处有一个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包中,随机码也需要写程序生成。

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄