一、如何成功申请到腾讯云短信服务
首先开通短信服务,应该会免费赠送100条短信
1、签名申请
2、正文模板申请
点击创建正文模板
等待审核即可
二、发送短信API开发
1、腾讯云在线测试(先进行在线测试,后面再使用代码测试)
1、SmsSdkAppId:短信 SdkAppId,在 短信控制台 添加应用后生成的实际 SdkAppId
2、TemplateId:模板 ID,必须填写已审核通过的模板 ID。模板 ID 可登录 短信控制台 查看,若向境外手机号发送短信,仅支持使用国际/港澳台短信模板。
3、SignName:短信签名内容,使用 UTF-8 编码,必须填写已审核通过的签名,例如:腾讯云,签名信息可登录 短信控制台 查看。 国内短信为必填参数。
点击发送请求
可以在云端直接进行生成代码
也可以参考API文档
API文档链接地址:短信 Java SDK-SDK 文档-文档中心-腾讯云
后端主要代码
// Depends on tencentcloud-sdk-nodejs version 4.0.3 or higher
const tencentcloud = require("tencentcloud-sdk-nodejs-sms");
const SmsClient = tencentcloud.sms.v20210111.Client;
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
const clientConfig = {
credential: {
secretId: "登录账号的secreId",
secretKey: "登录账号的secretKey",
},
region: "ap-beijing",
profile: {
httpProfile: {
endpoint: "sms.tencentcloudapi.com",
},
},
};
// 实例化要请求产品的client对象,clientProfile是可选的
const client = new SmsClient(clientConfig);
const params = {
"PhoneNumberSet": ["+86"+前端返回给后端的tel],
"SmsSdkAppId": "1400859378",
"SignName": "拙劣的模仿者公众号",
"TemplateId": "1944720",
"TemplateParamSet": [后端随机生成的验证码.toString()]
};
client.SendSms(params).then(
(data) => {
res.send({code:200,msg:"验证码发送成功",yzm:后端随机生成的验证码.toString(),data})
},
(err) => {
console.error("error", err);
}
);
随机生成六位随机数
// 随机生成的六位验证码
let randomNum = Math.floor(Math.random() * 1000000); // 生成0~999999的随机整数
let result = String(randomNum).padStart(6, '0'); // 将结果转换成字符串,并在前面补0,直到达到六位