• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

使用阿里云发送短信验证码

武飞扬头像
elk-zhang
帮助1

目录

一、用户注册登录流程 

二、使用阿里云发送短信验证码

⭐生成密钥 

⭐将密钥配置到项目中

⚪新建properties文件并填入相应信息

⚪pom配置

⚪ 测试代码

⚪添加签名

⚪添加短信发送的模板

💧验证码防盗刷监控


一、用户注册登录流程 

学新通学新通

二、使用阿里云发送短信验证码

阿里云-搜索推荐 (aliyun.com)

学新通

进入控制台查看购买的短信的详细信息 

学新通

⭐生成密钥 

密钥管理(Access key)

学新通

点击Access key进入密钥管理界面

点击创建AccessKey

学新通新建一个密钥

学新通

⭐将密钥配置到项目中

⚪新建properties文件并填入相应信息

配置的信息分别对应:

学新通

可以在生产时下载的文件中直接查看 

学新通

学新通

⚪pom配置

  1.  
    <dependency>
  2.  
    <groupId>com.aliyun</groupId>
  3.  
    <artifactId>aliyun-java-sdk-core</artifactId>
  4.  
    <version>4.6.0</version>
  5.  
    </dependency>

学新通⚪ 测试代码

  • 配置类
  1.  
    import org.springframework.boot.context.properties.ConfigurationProperties;
  2.  
    import org.springframework.context.annotation.PropertySource;
  3.  
    import org.springframework.stereotype.Component;
  4.  
     
  5.  
     
  6.  
    @Component
  7.  
    classpath:aliyun.properties 注意不要加空格
  8.  
    @PropertySource("classpath:aliyun.properties")
  9.  
    //前缀
  10.  
    @ConfigurationProperties(prefix = "aliyun")
  11.  
    public class AliyunResource {
  12.  
    private String accessKeyID;
  13.  
    private String accessKeySecret;
  14.  
     
  15.  
    public String getAccessKeyID() {
  16.  
    return accessKeyID;
  17.  
    }
  18.  
     
  19.  
    public void setAccessKeyID(String accessKeyID) {
  20.  
    this.accessKeyID = accessKeyID;
  21.  
    }
  22.  
     
  23.  
    public String getAccessKeySecret() {
  24.  
    return accessKeySecret;
  25.  
    }
  26.  
     
  27.  
    public void setAccessKeySecret(String accessKeySecret) {
  28.  
    this.accessKeySecret = accessKeySecret;
  29.  
    }
  30.  
    }
学新通
  • 用官网给的测试代码进行测试

学新通

需要注意的参数

学新通

  1.  
    import com.aliyuncs.DefaultAcsClient;
  2.  
    import com.aliyuncs.IAcsClient;
  3.  
    import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
  4.  
    import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
  5.  
    import com.aliyuncs.exceptions.ClientException;
  6.  
    import com.aliyuncs.exceptions.ServerException;
  7.  
    import com.aliyuncs.profile.DefaultProfile;
  8.  
    import com.谷歌.gson.Gson;
  9.  
    import com.imooc.utils.extend.AliyunResource;
  10.  
    import org.springframework.beans.factory.annotation.Autowired;
  11.  
    import org.springframework.stereotype.Component;
  12.  
     
  13.  
    @Component
  14.  
    public class SMSUtils {
  15.  
    @Autowired
  16.  
    public AliyunResource aliyunResource;
  17.  
     
  18.  
    public void sendSMS(){
  19.  
    DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",
  20.  
    aliyunResource.getAccessKeyID(),
  21.  
    aliyunResource.getAccessKeySecret());
  22.  
    IAcsClient client = new DefaultAcsClient(profile);
  23.  
    SendSmsRequest request = new SendSmsRequest();
  24.  
    request.setSignName("阿里云短信测试");
  25.  
    request.setTemplateCode("SMS_154950909");
  26.  
    request.setPhoneNumbers("1234567890");
  27.  
    request.setTemplateParam("{\"code\": \"" code "\"}");
  28.  
    try {
  29.  
    SendSmsResponse response = client.getAcsResponse(request);
  30.  
    System.out.println(new Gson().toJson(response));
  31.  
    } catch (ServerException e) {
  32.  
    e.printStackTrace();
  33.  
    } catch (ClientException e) {
  34.  
    System.out.println("ErrCode:" e.getErrCode());
  35.  
    System.out.println("ErrMsg:" e.getErrMsg());
  36.  
    System.out.println("RequestId:" e.getRequestId());
  37.  
    }
  38.  
    }
  39.  
    }
学新通

⚪添加签名

学新通

学新通⚪添加短信发送的模板

学新通

学新通

  • PassportControllerApi  
  1.  
    import com.imooc.grace.result.GraceJSONResult;
  2.  
    import io.swagger.annotations.Api;
  3.  
    import io.swagger.annotations.ApiOperation;
  4.  
    import org.springframework.web.bind.annotation.GetMapping;
  5.  
     
  6.  
     
  7.  
    @Api(value = "用户注册登录",tags ={"用于用户注册登录的controller"})
  8.  
    public interface PassportControllerApi {
  9.  
    /**
  10.  
    * 获得短信验证码
  11.  
    * @return
  12.  
    */
  13.  
    @ApiOperation(value = "获得短信验证码",notes = "获得短信验证码",httpMethod = "GET")
  14.  
    @GetMapping("/getSMSCode")
  15.  
    public GraceJSONResult getSMSCode();
  16.  
    }
学新通
  • PassportController  
  1.  
    import com.imooc.api.controller.user.PassportControllerApi;
  2.  
    import com.imooc.grace.result.GraceJSONResult;
  3.  
    import com.imooc.utils.SMSUtils;
  4.  
    import org.slf4j.Logger;
  5.  
    import org.slf4j.LoggerFactory;
  6.  
    import org.springframework.beans.factory.annotation.Autowired;
  7.  
    import org.springframework.web.bind.annotation.RestController;
  8.  
     
  9.  
    @RestController
  10.  
    public class PassportController implements PassportControllerApi {
  11.  
     
  12.  
    final static Logger logger = LoggerFactory.getLogger(PassportController.class);
  13.  
     
  14.  
    @Autowired
  15.  
    private SMSUtils smsUtils;
  16.  
     
  17.  
    @Override
  18.  
    public GraceJSONResult getSMSCode() {
  19.  
    String random = "5201314";
  20.  
    smsUtils.sendSMS("17829172045","5201314");
  21.  
    return GraceJSONResult.ok();
  22.  
    }
  23.  
    }
学新通

 运行主启动类,访问地址,完成短信发送

学新通

学新通

学新通

💧验证码防盗刷监控

如果开启,这也会可能成为测试时验证码发送失败的原因

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhceff
系列文章
更多 icon
同类精品
更多 icon
继续加载