电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

SpringBoot實現阿里云短信接口對接的示例代碼

瀏覽:7日期:2023-04-20 13:29:49

前言

公司最近項目需要一個手機驗證碼的功能,任務確定后,倍感亞歷山大,以為和第三方對接的都好麻煩,查阿里的API、網上大神寫的博客,各種查之后才發現,簡單的一塌糊涂,這里想說個問題,不知道其他的攻城獅們是不是和我一樣的心里,剛接觸個沒做過的任務時,會一臉懵里的著急,無從下手的感覺,后來會了,就覺得簡單的一*,在這里我說一下自己的體會,遇到任何難點,先理思路、任務拆分、逐個查資料,其實一套下來,就不會那種一臉懵逼的干著急。。。

所需條件

1、阿里云賬戶

2、開通云通訊中的短信服務

3、申請短信簽名和模板

4、創建access_key和access_secret

5、然后就是代碼編寫

話不??攏?苯涌?伎?⒉街?/p>

開發步驟

開通短信服務

SpringBoot實現阿里云短信接口對接的示例代碼

創建創建access_key和access_secret

SpringBoot實現阿里云短信接口對接的示例代碼

申請短信模板和簽名

SpringBoot實現阿里云短信接口對接的示例代碼

開發步驟

1、創建AliyunConfig類

package com.preread.user.config;import com.aliyuncs.DefaultAcsClient;import com.aliyuncs.IAcsClient;import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;import com.aliyuncs.exceptions.ClientException;import com.aliyuncs.profile.DefaultProfile;import com.aliyuncs.profile.IClientProfile;import java.util.Random;/** * @Description: 阿里云短信接口配置類 * @author: yangxf * @date: 2019/4/11 15:01 */public class AliyunConfig { /* 短信API產品名稱(短信產品名固定,無需修改) */ private static final String product = 'Dysmsapi'; /* 短信API產品域名,接口地址固定,無需修改 */ private static final String domain = 'dysmsapi.aliyuncs.com'; /* 此處需要替換成開發者自己的accessKeyId和accessKeySecret(在阿里云訪問控制臺尋找) */ private static final String accessKeyId = '你的accessKeyId'; //TODO: 這里要寫成你自己生成的 private static final String accessKeySecret = '你的accessKeySecret';//TODO: 這里要寫成你自己生成的 /* 短信發送 */ public static SendSmsResponse sendSms(String phone) throws ClientException { /* 超時時間,可自主調整 */ System.setProperty('sun.net.client.defaultConnectTimeout', '10000'); System.setProperty('sun.net.client.defaultReadTimeout', '10000'); /* 初始化acsClient,暫不支持region化 */ IClientProfile profile = DefaultProfile.getProfile('cn-hangzhou', accessKeyId, accessKeySecret); DefaultProfile.addEndpoint('cn-hangzhou', 'cn-hangzhou', product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); /* 組裝請求對象-具體描述見控制臺-文檔部分內容 */ SendSmsRequest request = new SendSmsRequest(); /* 必填:待發送手機號 */ request.setPhoneNumbers(phone); /* 必填:短信簽名-可在短信控制臺中找到 */ request.setSignName('提前看'); //TODO: 這里是你短信簽名 /* 必填:短信模板code-可在短信控制臺中找到 */ request.setTemplateCode('你的模板code'); //TODO: 這里是你的模板code /* 可選:模板中的變量替換JSON串,如模板內容為'親愛的用戶,您的驗證碼為$[code]'時,此處的值為 */ request.setTemplateParam('{'code':'' + getMsgCode() + ''}'); // hint 此處可能會拋出異常,注意catch SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request); if(sendSmsResponse.getCode()!= null && sendSmsResponse.getCode().equals('OK')){ System.out.println('短信發送成功!驗證碼:' + getMsgCode()); }else { System.out.println('短信發送失敗!'); } return sendSmsResponse; } /** * @Function: 生成驗證碼 * @author: yangxf * @Date: 2019/4/11 15:30 */ private static String getMsgCode() { int n = 6; StringBuilder code = new StringBuilder(); Random ran = new Random(); for (int i = 0; i < n; i++) { code.append(Integer.valueOf(ran.nextInt(10)).toString()); } return code.toString(); }}

2、controller層調用

/** * @Function: 短信驗證接口 * @author: Yangxf * @Date: 2019/4/11 15:39 */ @RequestMapping('/smsverification') public Object SmsVerification(@Param('phone') String phone) { return userViewService.SmsVerification(phone); }

3、service層代碼

/** * @Function: 短信驗證 * @author: Yangxf * @Date: 2019/4/11 15:56 * @param: phone 手機號 */@Overridepublic Map<String, Object> SmsVerification(String phone) { Map<String, Object> map = new HashMap<>(); try { AliyunConfig.sendSms(phone); map.put('code', 200); map.put('msg', '短信驗證發送成功'); return map; } catch (ClientException e) { map.put('code', 300); map.put('msg', e.getMessage()); return map; }}

4、集成阿里云SDK

<!-- 阿里云短信SDK --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.1.0</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version></dependency><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId></dependency><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.7</version></dependency>

至此代碼階段OK,可以測試了

SpringBoot實現阿里云短信接口對接的示例代碼

效果如下:

SpringBoot實現阿里云短信接口對接的示例代碼

到此這篇關于SpringBoot實現阿里云短信接口對接的示例代碼的文章就介紹到這了,更多相關SpringBoot 阿里云短信接口對接內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 无锡市珂妮日用化妆品有限公司|珂妮日化官网|洗手液厂家 | GEDORE扭力螺丝刀-GORDON防静电刷-CHEMTRONICS吸锡线-上海卓君电子有限公司 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | 恒温水槽与水浴锅-上海熙浩实业有限公司 | 天长市晶耀仪表有限公司| 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 货车视频监控,油管家,货车油管家-淄博世纪锐行电子科技 | 上海办公室装修,办公楼装修设计,办公空间设计,企业展厅设计_写艺装饰公司 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 常州减速机_减速机厂家_常州市减速机厂有限公司 | 东莞爱加真空科技有限公司-进口真空镀膜机|真空镀膜设备|Polycold维修厂家 | 洛阳永磁工业大吊扇研发生产-工厂通风降温解决方案提供商-中实洛阳环境科技有限公司 | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 变色龙云 - 打包app_原生app_在线制作平台_短链接_ip查询 | 佛山市德信昌电子有限公司 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 双菱电缆-广州电缆厂_广州电缆厂有限公司 | 生物除臭剂-除味剂-植物-污水除臭剂厂家-携葵环保有限公司 | 液压升降货梯_导轨式升降货梯厂家_升降货梯厂家-河南东圣升降设备有限公司 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 旗杆生产厂家_不锈钢锥形旗杆价格_铝合金电动旗杆-上海锥升金属科技有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | 施工围挡-施工PVC围挡-工程围挡-深圳市旭东钢构技术开发有限公司 | 铸钢件厂家-铸钢齿轮-减速机厂家-淄博凯振机械有限公司 | 湖南自考_湖南自学考试 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | 臭氧灭菌箱-油桶加热箱-原料桶加热融化烘箱-南京腾阳干燥设备厂 臭氧发生器_臭氧消毒机 - 【同林品牌 实力厂家】 | 自清洗过滤器_全自动过滤器_全自动反冲洗过滤器_量子过滤器-滑漮滴 | 动力配电箱-不锈钢配电箱-高压开关柜-重庆宇轩机电设备有限公司 聚天冬氨酸,亚氨基二琥珀酸四钠,PASP,IDS - 远联化工 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 手持式浮游菌采样器-全排二级生物安全柜-浙江孚夏医疗科技有限公司 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | 合肥展厅设计-安徽展台设计-合肥展览公司-安徽奥美展览工程有限公司 | 叉车电池-叉车电瓶-叉车蓄电池-铅酸蓄电池-电动叉车蓄电池生产厂家 |