时间:2021-07-15 | 标签: | 作者:Q8 | 来源:BLUcoding网络
小提示:您能找到这篇{SpringBoot整合阿里云短信验证服务的使用示例}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的SpringBoot整合阿里云短信验证服务的使用示例内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
< ">SpringBoot整合阿里云短信验证服务的使用示例 < font-size: 16px;">1.添加 RAM 用户并赋予权限:AliyunDysmsFullAccess(管理短信服务(SMS)的权限) < font-size: 16px;">2.添加短信模板并等待审核通过,记录下模板CODE:SMS_205403229 < font-size: 16px;"> < font-size: 16px;">3. 添加签名,适用场景选择验证码,等待审核通过,记录下签名名称:BLU的java自学网站 < font-size: 16px;">4.SpringBoot项目导入依赖: < font-size: 16px;"><dependency> < font-size: 16px;"> <groupId>com.aliyun</groupId> < font-size: 16px;"> <artifactId>aliyun-java-sdk-core</artifactId> < font-size: 16px;"> <version>4.5.3</version> < font-size: 16px;"></dependency> < font-size: 16px;"><dependency> < font-size: 16px;"> <groupId>com.alibaba</groupId> < font-size: 16px;"> <artifactId>fastjson</artifactId> < font-size: 16px;"> <version>1.2.62</version> < font-size: 16px;"></dependency> < font-size: 16px;"><dependency> < font-size: 16px;"> <groupId>org.springframework.boot</groupId> < font-size: 16px;"> <artifactId>spring-boot-starter-data-redis</artifactId> < font-size: 16px;"></dependency> < font-size: 16px;">测试类: < font-size: 16px;">@Test < font-size: 16px;">void contextLoads() { < font-size: 16px;"> //连接阿里云 < font-size: 16px;"> DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的AccessKey ID", "你的AccessKey Secret"); < font-size: 16px;"> IAcsClient client = new DefaultAcsClient(profile); < font-size: 16px;"> //构建请求 < font-size: 16px;"> CommonRequest request = new CommonRequest(); < font-size: 16px;"> //下面的信息不要改 < font-size: 16px;"> request.setSysMethod(MethodType.POST); < font-size: 16px;"> request.setSysDomain("dysmsapi.aliyuncs.com"); < font-size: 16px;"> request.setSysVersion("2017-05-25"); < font-size: 16px;"> request.setSysAction("SendSms"); < font-size: 16px;"> //自定义的参数(手机号、签名和模版CODE) < font-size: 16px;"> request.putQueryParameter("PhoneNumbers", "测试的手机号码"); < font-size: 16px;"> request.putQueryParameter("SignName", "你的签名名称"); < font-size: 16px;"> request.putQueryParameter("TemplateCode", "你的模版CODE"); < font-size: 16px;"> //构建一个短信验证码 < font-size: 16px;"> HashMap<String, Object> map = new HashMap<>(); < font-size: 16px;"> map.put("code", 2333); < font-size: 16px;"> request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map)); < font-size: 16px;"> //尝试发送 < font-size: 16px;"> try { < font-size: 16px;"> CommonResponse response = client.getCommonResponse(request); < font-size: 16px;"> System.out.println(response.getData()); < font-size: 16px;"> } catch (ServerException e) { < font-size: 16px;"> e.printStackTrace(); < font-size: 16px;"> } catch (ClientException e) { < font-size: 16px;"> e.printStackTrace(); < font-size: 16px;"> } < font-size: 16px;">} < font-size: 16px;"> < font-size: 16px;">配置文件: < font-size: 16px;">server.port=9090 < font-size: 16px;">spring.redis.host=127.0.0.1 < font-size: 16px;">spring.redis.port=6379 < font-size: 16px;">Service接口: < font-size: 16px;">package com.blu.service; < font-size: 16px;">import java.util.Map; < font-size: 16px;">public interface SendSms { < font-size: 16px;"> public boolean send(String phoneNum,String trmplateCode,Map<String,Object> code); < font-size: 16px;">} < font-size: 16px;">Service实现类: < font-size: 16px;">package com.blu.service.Impl; < font-size: 16px;">import java.util.Map; < font-size: 16px;">import org.springframework.stereotype.Service; < font-size: 16px;">import com.alibaba.fastjson.JSONObject; < font-size: 16px;">import com.aliyuncs.CommonRequest; < font-size: 16px;">import com.aliyuncs.CommonResponse; < font-size: 16px;">import com.aliyuncs.DefaultAcsClient; < font-size: 16px;">import com.aliyuncs.IAcsClient; < font-size: 16px;">import com.aliyuncs.exceptions.ClientException; < font-size: 16px;">import com.aliyuncs.exceptions.ServerException; < font-size: 16px;">import com.aliyuncs.http.MethodType; < font-size: 16px;">import com.aliyuncs.profile.DefaultProfile; < font-size: 16px;">import com.blu.service.SendSms; < font-size: 16px;">@Service < font-size: 16px;">public class SendSmsImpl implements SendSms { < font-size: 16px;"> @Override < font-size: 16px;"> public boolean send(String phoneNum, String trmplateCode, Map<String, Object> code) { < font-size: 16px;"> // 连接阿里云 < font-size: 16px;"> DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的AccessKey ID", < font-size: 16px;"> "你的AccessKey Secret"); < font-size: 16px;"> IAcsClient client = new DefaultAcsClient(profile); < font-size: 16px;"> // 构建请求 < font-size: 16px;"> CommonRequest request = new CommonRequest(); < font-size: 16px;"> // 下面的信息不要改 < font-size: 16px;"> request.setSysMethod(MethodType.POST); < font-size: 16px;"> request.setSysDomain("dysmsapi.aliyuncs.com"); < font-size: 16px;"> request.setSysVersion("2017-05-25"); < font-size: 16px;"> request.setSysAction("SendSms"); < font-size: 16px;"> // 自定义的参数(手机号,验证码,签名,模板) < font-size: 16px;"> request.putQueryParameter("PhoneNumbers", phoneNum); < font-size: 16px;"> request.putQueryParameter("SignName", "BLU的java自学网站"); < font-size: 16px;"> request.putQueryParameter("TemplateCode", trmplateCode); < font-size: 16px;"> request.putQueryParameter("TemplateParam", JSONObject.toJSONString(code)); < font-size: 16px;"> try { < font-size: 16px;"> CommonResponse response = client.getCommonResponse(request); < font-size: 16px;"> System.out.println(response.getData()); < font-size: 16px;"> //返回是否成功 < font-size: 16px;"> return response.getHttpResponse().isSuccess(); < font-size: 16px;"> } catch (ServerException e) { < font-size: 16px;"> e.printStackTrace(); < font-size: 16px;"> } catch (ClientException e) { < font-size: 16px;"> e.printStackTrace(); < font-size: 16px;"> } < font-size: 16px;"> return false; < font-size: 16px;"> } < font-size: 16px;">} < font-size: 16px;">Controller接口: < font-size: 16px;">package com.blu.controller; < font-size: 16px;">import java.util.HashMap; < font-size: 16px;">import java.util.UUID; < font-size: 16px;">import java.util.concurrent.TimeUnit; < font-size: 16px;">import org.springframework.beans.factory.annotation.Autowired; < font-size: 16px;">import org.springframework.data.redis.core.RedisTemplate; < font-size: 16px;">import org.springframework.web.bind.annotation.CrossOrigin; < font-size: 16px;">import org.springf全网营销如何做ramework.web.bind.annotation.GetMapping; < font-size: 16px;">import org.springframework.web.bind.annotation.PathVariable; < font-size: 16px;">import org.springframework.web.bind.annotation.RestController; < font-size: 16px;">import com.aliyuncs.utils.StringUtils; < font-size: 16px;">import com.blu.service.SendSms; < font-size: 16px;">@RestController < font-size: 16px;">@CrossOrigin < font-size: 16px;">public class SmsApiController { < font-size: 16px;"> @Autowired < font-size: 16px;"> private SendSms sendSms; < font-size: 16px;"> @Autowired < font-size: 16px;"> private RedisTemplate<String,String> redisTemplate; < font-size: 16px;"> @GetMapping("send/{phone}") < font-size: 16px;"> public String code(@PathVariable("phone") String phone) { < font-size: 16px;"> String code = redisTemplate.opsForValue().get(phone); < font-size: 16px;"> if(!StringUtils.isEmpty(code)) { < font-size: 16px;"> return phone + ':' + code + "还没有过期"; < font-size: 16px;"> }else { < font-size: 16px;"> //生成4位验证码并存储到 redis 中 < font-size: 16px;"> code = UUID.rando小红书发笔记mUUID().toString().substring(0,4); < font-size: 16px;"> HashMap<String, Object> map = new HashMap<>(); < font-size: 16px;"> map.put("code", code); < font-size: 16px;"> boolean isSend = sendSms.send(phone, "SMS_205403229", map); < font-size: 16px;"> if(isSend) { < font-size: 16px;"> //将验证码存入redis,并设置1分钟过期时间 < font-size: 16px;"> redisTemplate.opsForValue().set(phone, code,1,TimeUnit.MINUTES); < font-size: 16px;"> return phone + ':' + code + "发送成功!"; < font-size: 16px;"> }else { < font-size: 16px;"> return "发送失败!"; < font-size: 16px;"> } < font-size: 16px;"> } < font-size: 16px;"> } < font-size: 16px;">} < font-size: 16px;">测试请求:http://localhost:9090/send/银行微博危机公关1565177xxxx < font-size: 16px;"> < font-size: 16px;"> |
上一篇:阿里云开通maven仓库服务及springboot集成
下一篇:实现自动开启Cloudflare的5秒盾和验证码
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“SpringBoot整合阿里云短信验证服务的使用示例”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通SpringBoot整合阿里云短信验证服务的使用示例的相关事宜。
关键词:SpringBoot整合阿里云短信验