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

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

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

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

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

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

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

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

使用腾讯云短信实现发送短信验证码_第1张图片

使用腾讯云短信实现发送短信验证码_第2张图片

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

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

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

点击appId进入应用详情

使用腾讯云短信实现发送短信验证码_第3张图片

使用腾讯云短信实现发送短信验证码_第4张图片

 

 接下来展示我的代码:

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();
        }
    }

}

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

使用腾讯云短信实现发送短信验证码_第5张图片

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

 
            org.apache.httpcomponents
            httpclient
            4.2.4
 

然后我升级到了:

 
            org.apache.httpcomponents
            httpclient
            4.5.8
 

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

你可能感兴趣的:(腾讯云,云计算)