使用腾讯云短信实现发送短信验证码

心血来潮想写一个注册账号的接口,但是奈何之前搞过发送短信验证码的功能,于是一顿百度搜索,借助前人的经验,经过几个小时终于搞好了~

1.首先要搞腾讯云的发送短信账号

购买链接:云智信短信验证码-腾讯云市场

购买套餐类型可以根据个人财力决定,就像我就只买了11块钱的~~

2.买好了之后需要申请数字签名和短信模板

点击链接根据提示提交审核就行,一般两个小时之内就会有审核结果

登录 - 腾讯云icon-default.png?t=M1L8https://console.cloud.tencent.com/smsv2

 搞定这个之后就可以去写代码了,可以看下腾讯云提供的API文档。

 登录 - 腾讯云icon-default.png?t=M1L8https://console.cloud.tencent.com/api/explorer?Product=sms&Version=2021-01-11&Action=SendSms&SignVersion=

获取appId 和 appKey发送请求时需要用到:

点击appId进入应用详情

 

 接下来展示我的代码:

import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import org.json.JSONException;

public class SendVrfctonCode {
    public static void sendMessage(String phoneNum, String code) throws Exception {

        /**
         * 先准备一些基本信息,在短信控制台就可以找到。
         * appId, appKey 在应用管理中就可以找到
         * 签名在签名管理中可以知道 注意要写的时签名内容,而不是签名ID
         * 模板Id可以在模板管理中找到
         */
        String appkey = "bc18ef5ef576d7f1bfc665d5f27xxxxxx";
        int appId = 1400642000;
        int templateId = 1333333;
        String smsSign = "腾讯云";

        // 发送的手机号
        String phoneNumber = phoneNum;
        // 参数内容 根据你模板中有几个参数,按照对应的顺序放在数组中就行,这里只有一个参数
        String[] params = { code };
        try {

            SmsSingleSender sender = new SmsSingleSender(appId, appkey);
            SmsSingleSenderResult result = sender.sendWithParam("86", phoneNumber,
                    templateId, params, smsSign, "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
        } catch (HTTPException e) {
            e.printStackTrace();
        } catch (JSONException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

不过在写完之后,代码报错了:

既然报错了,就又是一顿百度,最后发现是httpclient版本的问题,原本我引入的是

 <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.2.4</version>
 </dependency>

然后我升级到了:

 <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.8</version>
 </dependency>

 终于可以成功的发送短信验证码了~ 欧耶

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云梦山老人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值