




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第關(guān)于springboot集成阿里云短信的問題目錄1.獲取簽名與模板2.編寫模板與簽名的枚舉類3.配置類4.測試類?
1.獲取簽名與模板
進入阿里云平臺,進入短信服務(wù)模塊,在以下位置添加簽名和模板(格式一定按照要求填寫審批的比較嚴(yán)格)
2.編寫模板與簽名的枚舉類
在上文獲取模板與簽名成功后,并作為常量放在枚舉類中。
publicenumDySmsEnum{
*本類此處需要修改(短信模板編碼,簽名,參數(shù))
LOGIN_TEMPLATE_CODE("SMS_187570276","自定義軟件框架集成百度云","code");
*短信模板編碼
privateStringtemplateCode;
*簽名
privateStringsignName;
*短信模板必需的數(shù)據(jù)名稱,多個key以逗號分隔,此處配置作為校驗
privateStringkeys;
privateDySmsEnum(StringtemplateCode,StringsignName,Stringkeys){
this.templateCode=templateCode;
this.signName=signName;
this.keys=keys;
publicStringgetTemplateCode(){
returntemplateCode;
publicvoidsetTemplateCode(StringtemplateCode){
this.templateCode=templateCode;
publicStringgetSignName(){
returnsignName;
publicvoidsetSignName(StringsignName){
this.signName=signName;
publicStringgetKeys(){
returnkeys;
publicvoidsetKeys(Stringkeys){
this.keys=keys;
publicstaticDySmsEnumtoEnum(StringtemplateCode){
if(StringUtils.isEmpty(templateCode)){
returnnull;
for(DySmsEnumitem:DySmsEnum.values()){
if(item.getTemplateCode().equals(templateCode)){
returnitem;
returnnull;
3.配置類
這里面需要兩個參數(shù)accessKeyId,accessKeySecret,需要在以下位置獲取。
importcom.alibaba.fastjson.JSONObject;
importcom.aliyuncs.DefaultAcsClient;
importcom.aliyuncs.IAcsClient;
importcom.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
importcom.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
importcom.aliyuncs.exceptions.ClientException;
importfile.DefaultProfile;
importfile.IClientProfile;
importcom.vanpeng.systemportal.modules.dysms.constant.DySmsEnum;
importorg.slf4j.Logger;
importorg.slf4j.LoggerFactory;
importorg.springframework.stereotype.Component;
@Component
publicclassDySmsHelper{
privatefinalstaticLoggerlogger=LoggerFactory.getLogger(DySmsHelper.class);
//產(chǎn)品名稱:云通信短信API產(chǎn)品,無需替換
staticfinalStringproduct="Dysmsapi";
//產(chǎn)品域名,無需替換
staticfinalStringdomain="";
//此處需要替換成開發(fā)者自己的AK(在阿里云訪問控制臺尋找本類需要修改此處)
staticStringaccessKeyId;
staticStringaccessKeySecret;
publicstaticvoidsetAccessKeyId(StringaccessKeyId){
DySmsHelper.accessKeyId=accessKeyId;
publicstaticvoidsetAccessKeySecret(StringaccessKeySecret){
DySmsHelper.accessKeySecret=accessKeySecret;
publicstaticStringgetAccessKeyId(){
returnaccessKeyId;
publicstaticStringgetAccessKeySecret(){
returnaccessKeySecret;
publicbooleansendSms(Stringphone,JSONObjecttemplateParamJson,DySmsEnumdySmsEnum)throwsClientException{
//可自助調(diào)整超時時間
System.setProperty(".client.defaultConnectTimeout","10000");
System.setProperty(".client.defaultReadTimeout","10000");
//初始化acsClient,暫不支持region化
IClientProfileprofile=DefaultProfile.getProfile("cn-hangzhou",accessKeyId,accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou","cn-hangzhou",product,domain);
IAcsClientacsClient=newDefaultAcsClient(profile);
//驗證json參數(shù)
validateParam(templateParamJson,dySmsEnum);
//組裝請求對象-具體描述見控制臺-文檔部分內(nèi)容
SendSmsRequestrequest=newSendSmsRequest();
//必填:待發(fā)送手機號
request.setPhoneNumbers(phone);
//必填:短信簽名-可在短信控制臺中找到
request.setSignName(dySmsEnum.getSignName());
//必填:短信模板-可在短信控制臺中找到
request.setTemplateCode(dySmsEnum.getTemplateCode());
//可選:模板中的變量替換JSON串,如模板內(nèi)容為"親愛的${name},您的驗證碼為$[code]"時,此處的值為
request.setTemplateParam(templateParamJson.toJSONString());
//選填-上行短信擴展碼(無特殊需求用戶請忽略此字段)
//request.setSmsUpExtendCode("90997");
//可選:outId為提供給業(yè)務(wù)方擴展字段,最終在短信回執(zhí)消息中將此值帶回給調(diào)用者
//request.setOutId("yourOutId");
booleanresult=false;
//hint此處可能會拋出異常,注意catch
SendSmsResponsesendSmsResponse=acsClient.getAcsResponse(request);
("短信接口返回的數(shù)據(jù)----------------");
("{Code:"+sendSmsResponse.getCode()+",Message:"+sendSmsResponse.getMessage()+",RequestId:"+sendSmsResponse.getRequestId()+",BizId:"+sendSmsResponse.getBizId()+"}");
if("OK".equals(sendSmsResponse.getCode())){
result=true;
returnresult;
privatestaticvoidvalidateParam(JSONObjecttemplateParamJson,DySmsEnumdySmsEnum){
Stringkeys=dySmsEnum.getKeys();
String[]keyArr=keys.split(",");
for(Stringitem:keyArr){
if(!templateParamJson.containsKey(item)){
thrownewRuntimeException("模板缺少參數(shù):"+item);
4.測試類
使用postman或者其他方式調(diào)用即可發(fā)送短信。
@RestController
@RequestMapping("/SendSmsControllor")
publicclassSendSmsControllor{
@Autowired
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 預(yù)防傳染病主題班會課件
- 水肌酸產(chǎn)品項目規(guī)劃設(shè)計方案(參考模板)
- 鄉(xiāng)鎮(zhèn)機關(guān)管理制度
- 吳起采油廠人執(zhí)勤點工程頤園樣本
- 物業(yè)員工工作計劃
- 2025年微波等離子炬光譜儀項目合作計劃書
- 2025年藥品及醫(yī)療器械批發(fā)服務(wù)項目建議書
- 物業(yè)的服務(wù)規(guī)定規(guī)定合同(物業(yè)的服務(wù)公司的)
- 博物館解決方案方案
- 2025年試驗機械相關(guān)檢測儀器合作協(xié)議書
- 2023年小學(xué)數(shù)學(xué)必背定義和公式
- 2023年四川省宜賓市全科醫(yī)學(xué)專業(yè)實踐技能測試卷(含答案)
- 電梯井道腳手架施工方案
- 興平市生活垃圾焚燒發(fā)電項目環(huán)評報告
- 初中數(shù)學(xué)浙教版九年級上冊第4章 相似三角形4.3 相似三角形 全國公開課一等獎
- 主令電器(課用)課件
- DLT 5066-2010 水電站水力機械輔助設(shè)備系統(tǒng)設(shè)計技術(shù)規(guī)定
- 湘少版英語六年級下冊全冊教案
- 測繪生產(chǎn)困難類別細(xì)則及工日定額
- 湖南省長郡中學(xué)“澄池”杯數(shù)學(xué)競賽初賽試題(掃描版含答案)
- 消防系統(tǒng)施工總進度計劃
評論
0/150
提交評論