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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析)

發(fā)布時間:2024/10/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2021/8/17/23:01{2021/8/17/23:01}2021/8/17/23:01

文章目錄

  • 前言
  • 一、如何成功申請到騰訊云短信服務(wù)
    • 1、簽名申請
    • 2、正文模板申請
  • 二、發(fā)送短信API開發(fā)
    • 1、騰訊云在線測試
    • 2、使用springboot進行測試
  • 三、常見的錯誤分析


前言

或許有的人會問我為什么不使用阿里云短信服務(wù),那是因為如今的阿里云短信服務(wù)對于大部分人來說很難申請成功,它需要備案或者項目已經(jīng)上線。而騰訊云短信相對來說比較寬松一些,可以利用個人公眾號進行申請成功


提示:以下是本篇文章正文內(nèi)容

一、如何成功申請到騰訊云短信服務(wù)

首先開通短信服務(wù),應(yīng)該會免費贈送100條短信

1、簽名申請

我已經(jīng)測試申請過一次{我已經(jīng)測試申請過一次}經(jīng)

點擊創(chuàng)建簽名

微信公眾號平臺鏈接:https://www.baidu.com/link?url=3OqiiGcBpe8Gp5YpnN4wF7CiaFkigOjrPtN3xjuIWLF1EDlRASXa3EDgeaQNn8k6&wd=&eqid=d95710f900018b6500000003611bd16a

2、正文模板申請

點擊創(chuàng)建正文模板


等待審核即可



二、發(fā)送短信API開發(fā)

1、騰訊云在線測試

先進行在線測試,后面再使用代碼測試

測試地址:https://console.cloud.tencent.com/api/explorer?Product=sms&Version=2021-01-11&Action=SendSms&SignVersion=

1、SmsSdkAppId:短信 SdkAppId,在 短信控制臺 添加應(yīng)用后生成的實際 SdkAppId

2、TemplateId:模板 ID,必須填寫已審核通過的模板 ID。模板 ID 可登錄 短信控制臺 查看,若向境外手機號發(fā)送短信,僅支持使用國際/港澳臺短信模板。

3、SignName:短信簽名內(nèi)容,使用 UTF-8 編碼,必須填寫已審核通過的簽名,例如:騰訊云,簽名信息可登錄 短信控制臺 查看。 國內(nèi)短信為必填參數(shù)。

點擊發(fā)送請求



成功!

2、使用springboot進行測試

1.文檔參考準備工作

可以在云端直接進行生成代碼

也可以參考API文檔

API文檔鏈接地址:https://cloud.tencent.com/document/product/382/43194


2.導(dǎo)入依賴

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

3.application.yml{application.yml}application.yml文件編寫

4.創(chuàng)建工具類

//實現(xiàn)了InitializingBean接口,當spring進行初始化bean時,會執(zhí)行afterPropertiesSet方法 @Component public class MsmConstantUtils implements InitializingBean {//我已經(jīng)再@Value("${tencent.msm.id}")private String secretID ;@Value("${tencent.msm.secret}")private String secretKey ;@Value("${tencent.msm.endPoint}")private String endPoint;@Value("${tencent.msm.appId}")private String appId;@Value("${tencent.msm.signName}")private String signName;@Value("${tencent.msm.templateId}")private String templateId;//六個相關(guān)的參數(shù)public static String SECRET_ID;public static String SECRET_KEY;public static String END_POINT;public static String APP_ID;public static String SIGN_NAME;public static String TEMPLATE_ID;@Overridepublic void afterPropertiesSet() throws Exception {SECRET_ID = secretID;SECRET_KEY = secretKey;END_POINT = endPoint;APP_ID = appId;SIGN_NAME = signName;TEMPLATE_ID = templateId;} }

5.RandomUtil編寫

public class RandomUtil {private static final Random random = new Random(); //我定義的驗證碼位數(shù)是6位private static final DecimalFormat sixdf = new DecimalFormat("000000");public static String getSixBitRandom() {return sixdf.format(random.nextInt(1000000));} }

6、接口編寫

注意我找的這個項目已經(jīng)集成了Swagger配置,后面我需要進行測試

@RestController @RequestMapping("/msm") @CrossOrigin @Api("發(fā)送短信服務(wù)") public class MsmController {@Autowiredprivate MsmService msmService;@ApiOperation("發(fā)送短信")@GetMapping("/send/{phone}")public ResponseEntity send(@PathVariable String phone) {boolean send = msmService.send(phone);if (send) {return ResponseEntity.ok();}return ResponseEntity.error();} } import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.profile.ClientProfile; import com.tencentcloudapi.common.profile.HttpProfile;import com.tencentcloudapi.sms.v20190711.SmsClient; import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest; import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse; import com.zhang.service.MsmService; import com.zhang.utils.MsmConstantUtils; import com.zhang.utils.RandomUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service;/*** @author:zsh* @date:2021/8/18* @email:181@qq.com*/ @Service @Slf4j public class MsmServiceImpl implements MsmService {@Overridepublic boolean send(String phone) {try {//這里是實例化一個Credential,也就是認證對象,參數(shù)是密鑰對;你要使用肯定要進行認證Credential credential = new Credential(MsmConstantUtils.SECRET_ID, MsmConstantUtils.SECRET_KEY);//HttpProfile這是http的配置文件操作,比如設(shè)置請求類型(post,get)或者設(shè)置超時時間了、還有指定域名了//最簡單的就是實例化該對象即可,它的構(gòu)造方法已經(jīng)幫我們設(shè)置了一些默認的值HttpProfile httpProfile = new HttpProfile();//這個setEndpoint可以省略的httpProfile.setEndpoint(MsmConstantUtils.END_POINT);//實例化一個客戶端配置對象,這個配置可以進行簽名(使用私鑰進行加密的過程),對方可以利用公鑰進行解密ClientProfile clientProfile = new ClientProfile();clientProfile.setHttpProfile(httpProfile);//實例化要請求產(chǎn)品(以sms為例)的client對象SmsClient smsClient = new SmsClient(credential, "ap-beijing", clientProfile);//實例化request封裝請求信息SendSmsRequest request = new SendSmsRequest();String[] phoneNumber = {phone};request.setPhoneNumberSet(phoneNumber); //設(shè)置手機號request.setSmsSdkAppid(MsmConstantUtils.APP_ID);request.setSign(MsmConstantUtils.SIGN_NAME);request.setTemplateID(MsmConstantUtils.TEMPLATE_ID);//生成隨機驗證碼,我的模板內(nèi)容的參數(shù)只有一個String verificationCode = RandomUtil.getSixBitRandom();String[] templateParamSet = {verificationCode};request.setTemplateParamSet(templateParamSet);//發(fā)送短信SendSmsResponse response = smsClient.SendSms(request);log.info(SendSmsResponse.toJsonString(response));return true;} catch (Exception e) {return false;}} }

7.測試

訪問http://localhost:8005/swagger-ui.html

使用swagger進行測試即可



成功!



三、常見的錯誤分析

使用騰訊云短信服務(wù)技術(shù)出現(xiàn)FailedOperation.TemplateIncorrectOrUnapprovedhttps://blog.csdn.net/Kevinnsm/article/details/119767325?spm=1001.2014.3001.5501
騰訊云短信出現(xiàn)there are both domestic mobile phone numbers and international mobile phone numbers in the…https://blog.csdn.net/Kevinnsm/article/details/119767611?spm=1001.2014.3001.5501


結(jié)束了! ??

2021/8/18/0:54

總結(jié)

以上是生活随笔為你收集整理的接入腾讯云短信服务(史上最详细+该短信服务如何申请成功+发送短信验证码API讲解+相关错误分析)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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