小东Freeman + 关注

签名:我们爱我们的倒霉工作,也爱这千疮百孔的世界。

JAVA实现腾讯云SMS短信发送功能

发表于 5个月前   4701次查看    1评论  29 赞

在网站初期一直都是采用的邮箱验证账号的,各种邮箱验证码,但是在信息高速发展的今天,邮箱验证码渐渐退出人们的视线,现在的各种验证码都是手机短信的形式呈现的,因为真的很方便,所以经过深思熟路,决定对网站进行重构,现在网站已经开启短信验证码模式,欢迎注册

下面讲解下java如何让实现腾讯云SMS短信发送功能

一、为什么选择腾讯云

    这几天比较了几家国内优质的短信服务平台,经过比较后发现阿里云和腾讯云最为合适(主要是价格低),然后就是阿里云那边是一万条起卖,是个套餐,然后也没有免费试用条数,然后腾讯云是可以自定义条数的,最低一千条,并且每个月送100条免费短信,如果是小型的个人博客网站,一个月100条差不多够用了,综上所述,我选择腾讯云。


二、腾讯云短信平台注册

    这个比较简单了,直接登录腾讯云短信平台进行注册即可,然后创建应用,创建签名,创建短信模版,这几项少一样都不可以,签名的话可以用网站备案或者个人的公众号就行,模版自己写,这些审核差不多半小时就能审核完毕。


三、进行开发

     根据官方的文档,是有三种方式进行接入的,一个是maven,一个是sbt,还有就是直接引入源码,由于我对前两个不太熟悉,所以我选择了第三种方式,直接引入源码,然后将他们提供的jar包放在工程里

     短信发送源码地址,直接下最新版本,然后解压,将需要的类放到自己的工程下,然后将包名改掉就引入成功了

     jar包地址: org.json , httpclienthttpcore 和 httpmine

四、Demo

    这里简单的说个例子把,由于我只做了单条短信的发送,所以我就引入了部分类,如下所示

QQ截图20180708125351.png

然后进行调用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
                //获取电话号码
         String phone=user.getPhone();
         
         //配置腾讯云数据
         int appid=你的id;
         String appkey=你的key;
        //验证码生成
        String yanzhengma=String.valueOf((int)((Math.random()*9+1)*100000));
        System.out.println(yanzhengma);
        try {
            //实例化单发信息类(腾讯云提供)
            SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
            //调用方法进行发送
            SmsSingleSenderResult result = ssender.send(0"86", phone,
     "【Fun言网】 您的验证码为:"+yanzhengma+",您正在注册Fun言网,
     该验证码5分钟内有效。请勿向任何人提供您收到的验证码,谨防被骗。", "", "");
            /*转换返回结果,用JSONObject解析json数据,0代表成功,非0失败*/
            JSONObject json = JSONObject.parseObject(result.toString());
            String state = json.getString("result");
            if ("0".equals(state)) {
                message.setMessage("发送成功");
                System.out.println("短信发送成功!");
            else {
                message.setMessage(null);
                System.out.println("短信发送失败!");
            }
            session.setAttribute("code", yanzhengma);
            System.out.print(result);
        catch (HTTPException e) {
            // HTTP响应码错误
            message.setMessage(null);
            e.printStackTrace();
        catch (JSONException e) {
            // json解析错误
            message.setMessage(null);
            e.printStackTrace();
        catch (IOException e) {
            // 网络IO错误
            message.setMessage(null);
            e.printStackTrace();
        }
        

这里都写了注释,应该挺简单的,主要是引入的时候太乱了,不过你看看他们的源码就挺简单的

1
2
3
4
5
6
//单条短信需要引入的
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import org.json.JSONException;
import java.io.IOException;

这样就用JAVA实现了腾讯云SMS短信发送功能了,可能说的不怎么详细,有不懂的欢迎在下方评论

29人已赞


本文由Fun言网 – 小东Freeman创作,转载请务必附上本文链接和出处,欢迎参与我们的付费投稿计划


你还没有登录,请先 登录注册!
文章评论1