前言
首先说下,几个坑已解决。准备说一下。使用的一些步骤
因为项目有一个短信验证码登录注册的,首先注册的是阿里的。但是审核没有审核通过,所以有注册了腾讯的
阿里登陆出错
本来向截图一下阿里的,结果登录出错了,这里就不说了。我直接说腾讯的把,
腾讯SMS短信
https://console.cloud.tencent.com/smsv2/csms-sign/create
首先注册签名,这里有一个要求。但是感觉没阿里那么严格。我用的是网址。注册(签名内容填写网址全称,或简称。证明哪里就截图你网址备案的资料,申请说明填写网站域名)上面都有说

其次是申请短信模板。
腾讯短信模板
短信API
,好了准备工作都差不都了。接下来就是写代码了。写代码肯定要用腾讯封装的SDK。 我是java
https://cloud.tencent.com/document/sdk 不同的语言,去这里下载

腾讯SDK
这里我选的是mvn 。这里有一个小坑。
注意:
这里的版本号只是举例,您可以在 Maven 仓库 上找到最新的版本。
Maven 仓库 中显示的4.0.11是废弃版本,由于 Maven 索引更新问题尚未完全删除。
若上面的引用方式会将腾讯云所有产品 SDK 下载到本地,可以将 artifactId 换成 tencentcloud-sdk-java-cvm/cbs/vpc 等,即可引用特定产品的 SDK,代码中使用方式和大包相同,可参考示例。最新版本也可在 Maven仓库 查询,可大大节省存储空间。

这几个不必要的坑,我都踩了。第一个是他放的mvn不是最新的,需要mvn仓库下载最新的。, Maven 仓库 中显示的4.0.11是废弃版本 。我第一次就用了4.0.11 .结果死活拉不下来。

     <dependency>
            <groupId>com.tencentcloudapi</groupId>
            <artifactId>tencentcloud-sdk-java</artifactId>
            <version>3.1.313</version>
        </dependency>

我使用的是这个版本,SDK准备好了,开始看文档。
https://cloud.tencent.com/document/api 这是网址
腾讯API文档

    这里有好几个文档。还是比较友好,我选择的是API3.0

腾讯短信API文档

package com.tanhua.sso;

import com.tanhua.sso.config.TengXunSMSConfig;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.sms.v20210111.SmsClient;
import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * sms短信发送
 */

@SpringBootTest
@RunWith(SpringRunner.class)
public class SendSms {
    @Autowired
    TengXunSMSConfig smsConfig;

    @Test
    public void sendSmsSend() {
        try {

            Credential cred = new Credential(smsConfig.getSecretId(), smsConfig.getSecretKey());
            SmsClient client = new SmsClient(cred, "ap-nanjing");
            // 实例化一个请求对象,每个接口都会对应一个request对象
            SendSmsRequest req = new SendSmsRequest();
            String[] phoneNumberSet1 = {"+86111111"};
            req.setPhoneNumberSet(phoneNumberSet1);
            req.setSmsSdkAppId(smsConfig.getSmsSdkAppId());
            req.setTemplateId(smsConfig.getTemplateId());
            req.setSignName(smsConfig.getSignName());
            String[] params = new String[]{"9527", smsConfig.getTimeOut()};
            req.setTemplateParamSet(params);

            // 返回的resp是一个SendSmsResponse的实例,与请求对象对应
            SendSmsResponse resp = client.SendSms(req);
            String json = SendSmsResponse.toJsonString(resp);
            System.out.println(json);
                if (json.contains("\"Code\":\"Ok\"")) {
                System.out.println("发送成功");
            } else {
                System.out.println("操作失败");
            }
        } catch (TencentCloudSDKException e) {
            System.out.println(e.toString());
        }
    }


}

这是我的代码。因为我把其中的参数抽出来了。
还需要获取最重要的密钥TOken
// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
// 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取

java短信验证码代码
好了,基本OK了。如果有看到不了解的可以问我。

踩的几个坑就是那个maven SDK ,和签名名称,找他的SDK和API文档也找了好一会。 解决的办法就是,试错。 各种试吧,因为查了百度和博客。也没太看见这方面的文章。如果对你有帮助的话。希望点赞评论噢!
JAVA短信API

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐