Java调用腾讯云短信API实现发送短信验证码完整。(详细,内附工具类)

此先声明,本博文并不是为了推销腾讯云短信产品。
只是因为腾讯云短信SDK的使用指南讲的不是很详细,觉得肯定有很多人像我一样被搞的一头雾水。所以专门发一篇关于使用短信接口的博文,为了记录,也为了帮助和我走同一条路的朋友。

一.短信验证码效果图

在这里插入图片描述

二.实现前提条件

1>腾讯云短信API的SDKAppleID和AppKey。
这两个需要购买腾讯云短信接口后由腾讯提供,详细步骤后面讲。

2>配置SDK
说白了就是下载几个jar包,然后应用。

三.购买腾讯云短信API

 https://cloud.tencent.com/redirect.php?redirect=1036&cps_key=8c19bcaafc7a4506af97cf4eda7b77bc&from=console

这个链接是腾讯云产品的最新活动,原价说是话挺贵的,但如果你是第一次购买,或者你是学生,就会很便宜,买一个用来学习是很不错的。
一般别人卖的都是几万条起步,1000RMB左右。但腾讯提供了45RMB,1000条的套餐,虽然跟别人卖的比起来有点贵,但是单纯为了学习,1000条根本用不完。并且这1000条短信拥有两年的有效时间,用来应付短信验证的场景,绰绰有余了。
购买后要使用短信接口,还需要一个必须的步骤,就是实名认证,实名认证的时候会需要到一个公司证书,一般人也没有,但腾讯提供了另一条路,就是申请一个微信公众号,随便发几条推文,就可以以这个公众号的身份来实名认证了。但在这样做之前,请务必加一下客服QQ,跟她说说你的实际情况,就会获得管理员的庇护。
顺便附上客服的QQ您可以根据实际需求联系腾讯云短信技术支持(QQ:3012203387)开通,实现批量拉取短信回执。

四.申请模板及其他。

不再过多讲购买和实名认证的过程了,基本没有什么难度。
我这里就姑且认为你已经拥有了自己的云短信服务。

1.打开腾讯云官网,右上角完成登录后会出现如下画面,这时点击右上角的控制台。

在这里插入图片描述

2.进入控制台后会出现如下页面,注意步骤1,我目前是已实名状态,如果你的状态是未实名,请先完成实名认证,这是不可或缺的一步,若你已经完成,就可以将鼠标移至云产品按钮,会出来一个下拉菜单,在里面找到“短信”(大概在最后一列),点击进入。

在这里插入图片描述

3.点击后页面跳转到你的云短信控制台,你能看到你刚刚购买的云短信服务。(这里我的公众号名字叫GTA,不用在意这个名字)。你可以通过“套餐包管理”查看你目前短信余量。不过本博文是教大家如何使用这个云产品的,所以不讲那些花里胡哨的了。点击进入。

在这里插入图片描述

4.接下来你就能看到你的SDK AppID和App Key。这两个就是之前所说的必需品之一。接下来的一步也是必不可少的,你需要点击上方的“国内短信”,来申请一个签名,和模板。

在这里插入图片描述

5.点击短信内容配置后,选择“创建签名”,申请一个签名(签名就是短信验证码开头的【签名】标志,具体看最开始的效果图。)过程中可能会需要我刚才所说的公众号截图什么的,具体还是奉劝大家加一下客服的QQ,好好跟她说说情况,她会帮助你通过的。我这里就不详细讲了。

在这里插入图片描述

5.申请好了签名,就需要创建一下短信模板,短信模板的格式是:{1}内容{2}内容。我的模板是:{1}当前验证码为{2}请于5分钟内填写。此处{1},{2}的位置的内容是可以改变的,比如:{1}你可以用代码添加“你好”,{2}可以添加用随机数生成的验证码。

在这里插入图片描述

6.若你已经完成了上述所有步骤,那么你离完成所需条件只剩下一步,那就是下载工具jar包。

我已经上传了所需的所有jar包,你可以在我的上传里看到并且下载。
或者你可以去步骤3的“SDK&API”里查看java的接入指南,里面提供了对应的下载链接,完全免费。
这里有什么不懂的话可以私聊我,我传给你也并不是不可以。

四.完成了所有前提条件,start coding

1.导入所需jar包。

导入上述下载的所有jar包,不同的编译器不同的步骤,这是基本中的基本。

2.coding
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 sendMessage {
    
    
    public static void main(String[] args) {
    
    
        int appid = 这里输入步骤4的appid;
        String appkey = "这里输入步骤4的appkey";
        String[] phoneNumbers = {
    
    "这里输入手机号","第二个手机号"}; //手机号可以添很多。
        int templateId = 这里添你申请的模板ID,注意是模板ID不是签名ID;
        String smsSign = "这里添你申请的签名,注意不是ID,是签名,中文。";
        try {
    
    
            String[] params = {
    
    "","123456"};  //第一个参数传递{1}位置想要的内容,第二个传递{2}的内容,以此类推。具体看步骤5
            SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
            SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],
                    templateId, params, smsSign, "", "");
            System.out.println(result);
        } catch (HTTPException e) {
    
    
            e.printStackTrace();
        } catch (JSONException e) {
    
    
            e.printStackTrace();
        } catch (IOException e) {
    
    
            e.printStackTrace();
        }
    }
}

这样就完全可以了,这只是一个测试模板,如果你成功收到了短信,就可以把他应用到frame里,设置button.click事件,获取textview的内容(手机号),完成发送。

如果我确实帮到了你,给一个赞,让我知道。
萌新对短信API的一点浅薄理解,大佬轻喷。
如有不足,欢迎指出。

猜你喜欢

转载自blog.csdn.net/Pratik_shiku/article/details/102558025