日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用腾讯云发送短信API接口实现(完整流程)

發(fā)布時(shí)間:2023/12/3 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用腾讯云发送短信API接口实现(完整流程) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

步驟

    • 一、開(kāi)通騰訊云短信服務(wù)
    • 二、申請(qǐng)簽名前的準(zhǔn)備(申請(qǐng)公眾號(hào))
    • 三、創(chuàng)建簽名和模板
    • 四、騰訊云API實(shí)現(xiàn)發(fā)送短信
    • 五、使用springboot進(jìn)行調(diào)用
    • 六、可能會(huì)報(bào)的錯(cuò)誤

一、開(kāi)通騰訊云短信服務(wù)

在騰訊云官網(wǎng)找到短信服務(wù),開(kāi)通

二、申請(qǐng)簽名前的準(zhǔn)備(申請(qǐng)公眾號(hào))

三、創(chuàng)建簽名和模板

1、創(chuàng)建簽名

2、填寫信息,然后確定,等審核

3、創(chuàng)建模板

4、填寫信息,等待審核

一般來(lái)說(shuō)模板還是比較容易成功的,一般來(lái)說(shuō)是簽名難通過(guò)點(diǎn)。

四、騰訊云API實(shí)現(xiàn)發(fā)送短信

1、騰訊云在線測(cè)試
在線測(cè)試地址:騰訊云api測(cè)試

在 短信控制臺(tái) 添加應(yīng)用后生成的實(shí)際 SdkAppId

填寫測(cè)試api的參數(shù)

點(diǎn)擊右邊在線調(diào)用

發(fā)送請(qǐng)求

成功
獲取秘鑰
官網(wǎng)鏈接:api秘鑰



復(fù)制下來(lái),后面要使用!

五、使用springboot進(jìn)行調(diào)用

我們可以直接在上面測(cè)試那里生成代碼,然后復(fù)制到springboot進(jìn)行使用,也可以參照官方文檔進(jìn)行操作。
API文檔鏈接地址:API文檔
1、導(dǎo)入依賴

<!--騰訊云短信依賴--> <!-- https://mvnrepository.com/artifact/com.tencentcloudapi/tencentcloud-sdk-java --> <dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId><version>3.1.423</version> </dependency>

注意:不要使用4.0.X版本,不是最新的
2、編寫application.properties配置

#騰訊云短信服務(wù)參數(shù) #騰訊云賬戶secretId,secretKey tencent.sms.keyId= tencent.sms.keysecret= #短信應(yīng)用ID: 短信SdkAppId在 [短信控制臺(tái)] 添加應(yīng)用后生成的實(shí)際SdkAppId tencent.sms.smsSdkAppId= #短信簽名內(nèi)容: 使用 UTF-8 編碼,必須填寫已審核通過(guò)的簽名 tencent.sms.signName= #模板 ID: 必須填寫已審核通過(guò)的模板 ID tencent.sms.templateId=

3、創(chuàng)建工具類

/*** 實(shí)現(xiàn)了InitializingBean接口,當(dāng)spring進(jìn)行初始化bean時(shí),會(huì)執(zhí)行afterPropertiesSet方法*/ @Component public class ConstantSmsUtils implements InitializingBean {@Value("${tencent.sms.keyId}")private String secretID ;@Value("${tencent.sms.keysecret}")private String secretKey ;@Value("${tencent.sms.smsSdkAppId}")private String smsSdkAppID ;@Value("${tencent.sms.signName}")private String signName ;@Value("${tencent.sms.templateId}")private String templateID ;public static String SECRET_ID;public static String SECRET_KEY;public static String SMSSDKAPP_ID;public static String SIGN_NAME;public static String TEMPLATE_ID;@Overridepublic void afterPropertiesSet() throws Exception {SECRET_ID = secretID;SECRET_KEY = secretKey;SMSSDKAPP_ID = smsSdkAppID;SIGN_NAME = signName;TEMPLATE_ID = templateID;} }

生成隨機(jī)數(shù)字的utils

/*** 獲取隨機(jī)數(shù)* * @author qianyi**/ public class RandomUtil {private static final Random random = new Random();private static final DecimalFormat fourdf = new DecimalFormat("0000");private static final DecimalFormat sixdf = new DecimalFormat("000000");//生成4位隨機(jī)數(shù)public static String getFourBitRandom() {return fourdf.format(random.nextInt(10000));}//生成6位隨機(jī)數(shù)public static String getSixBitRandom() {return sixdf.format(random.nextInt(1000000));}}

4、編寫發(fā)送短信API
controller

@Api(tags = {"短信發(fā)送"}) @RestController @RequestMapping("/edusms/sms") @CrossOrigin public class SmsController {@Autowiredprivate SmsService smsService;@ApiOperation(value = "發(fā)送短信的方法")@GetMapping("send/{phone}")public R sendSms(@ApiParam(name = "phone",value = "手機(jī)號(hào)碼",required = true)@PathVariable String phone){//調(diào)用service發(fā)送短信的方法boolean isSend = smsService.send(phone);if (isSend){return R.ok();}else {return R.error().message("短信發(fā)送失敗!");}} }

serviceImpl

//發(fā)送短信的方法@Overridepublic boolean send(String phone) {//判斷手機(jī)號(hào)是否為空if (StringUtils.isEmpty(phone)){return false;}try{// 實(shí)例化一個(gè)認(rèn)證對(duì)象,入?yún)⑿枰獋魅腧v訊云賬戶secretId,secretKey,此處還需注意密鑰對(duì)的保密// 密鑰可前往https://console.cloud.tencent.com/cam/capi網(wǎng)站進(jìn)行獲取Credential cred = new Credential(ConstantSmsUtils.SECRET_ID, ConstantSmsUtils.SECRET_KEY);// 實(shí)例化一個(gè)http選項(xiàng),可選的,沒(méi)有特殊需求可以跳過(guò)HttpProfile httpProfile = new HttpProfile();httpProfile.setEndpoint("sms.tencentcloudapi.com");// 實(shí)例化一個(gè)client選項(xiàng),可選的,沒(méi)有特殊需求可以跳過(guò)ClientProfile clientProfile = new ClientProfile();clientProfile.setHttpProfile(httpProfile);// 實(shí)例化要請(qǐng)求產(chǎn)品的client對(duì)象,clientProfile是可選的 第二個(gè)參數(shù)是地域信息SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);// 實(shí)例化一個(gè)請(qǐng)求對(duì)象,每個(gè)接口都會(huì)對(duì)應(yīng)一個(gè)request對(duì)象SendSmsRequest req = new SendSmsRequest();//設(shè)置固定的參數(shù)req.setSmsSdkAppId(ConstantSmsUtils.SMSSDKAPP_ID);// 短信應(yīng)用ID: 短信SdkAppId在 [短信控制臺(tái)] 添加應(yīng)用后生成的實(shí)際SdkAppIdreq.setSignName(ConstantSmsUtils.SIGN_NAME);//短信簽名內(nèi)容: 使用 UTF-8 編碼,必須填寫已審核通過(guò)的簽名req.setTemplateId(ConstantSmsUtils.TEMPLATE_ID);//模板 ID: 必須填寫已審核通過(guò)的模板 ID/* 用戶的 session 內(nèi)容: 可以攜帶用戶側(cè) ID 等上下文信息,server 會(huì)原樣返回 */ // String sessionContext = "xxx"; // req.setSessionContext(sessionContext);//設(shè)置發(fā)送相關(guān)的參數(shù)String[] phoneNumberSet1 = {"+86"+phone};req.setPhoneNumberSet(phoneNumberSet1);//發(fā)送的手機(jī)號(hào)//生成6位數(shù)隨機(jī)驗(yàn)證碼String verificationCode = RandomUtil.getSixBitRandom();String[] templateParamSet1 = {verificationCode, "5"};//模板的參數(shù) 第一個(gè)是驗(yàn)證碼,第二個(gè)是過(guò)期時(shí)間req.setTemplateParamSet(templateParamSet1);//發(fā)送驗(yàn)證碼//發(fā)送短信// 返回的resp是一個(gè)SendSmsResponse的實(shí)例,與請(qǐng)求對(duì)象對(duì)應(yīng)SendSmsResponse resp = client.SendSms(req);System.out.println("resp"+resp);// 輸出json格式的字符串回包System.out.println(SendSmsResponse.toJsonString(resp));return true;} catch (TencentCloudSDKException e) {e.printStackTrace();return false;}} }

5、使用swagger測(cè)試接口

六、可能會(huì)報(bào)的錯(cuò)誤

Spring Boot讀取application.properties可能會(huì)中文亂碼
解決方法:idea設(shè)置編碼格式

總結(jié)

以上是生活随笔為你收集整理的使用腾讯云发送短信API接口实现(完整流程)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。