项目开发---用户登录发送短信实现(使用阿里云短信接口)(看这篇就够了)

本文介绍了如何在阿里云开通短信服务,包括个人资质验证、签名设置、模板申请以及使用SpringBoot和DysmsApi库编写发送短信的Java代码。作者还提供了测试步骤和注意事项。
摘要由CSDN通过智能技术生成

在这里插入图片描述

使用阿里云开通短信服务教程

阿里云官网👉https://cn.aliyun.com/

完成登录
在这里插入图片描述
进入短信服务
在这里插入图片描述
在这里插入图片描述
开通短信服务
在这里插入图片描述
购买短信条数
在这里插入图片描述
购买完成进入阿里云短信控制台https://dysms.console.aliyun.com/overview

开通个人资质
在这里插入图片描述
添加签名
在这里插入图片描述
申请模版
在这里插入图片描述
在此处绑定手机号并且测试调用api发送短信
在这里插入图片描述
点击调用api发送短信 点击调用API发送短信,可以看到发送短信的JAVA代码。在这里插入图片描述
申请阿里云秘钥,该秘钥在发送短信时会作为参数传入
点击Accesskey管理
在这里插入图片描述
点击创建Accesskey
在这里插入图片描述

编写代码

创建springboot项目
pox.xml

<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
  </dependency>
  <dependency>
    <groupId>com.itbaizhan</groupId>
    <artifactId>shopping_common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </dependency>
  <!-- 阿里短信平台 -->
  <dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>dysmsapi20170525</artifactId>
    <version>2.0.9</version>
  </dependency>
  <!-- dubbo -->
  <dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.8</version>
  </dependency>
  <!-- 操作zookeeper -->
  <dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>4.2.0</version>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
  </dependency>
</dependencies>

application.yml

#端口号
server:
  port: 9007

#日志格式
logging:
  pattern:
   console: '%d{HH:mm:ss.SSS} %clr(%-5level) ---  [%-15thread] %cyan(%-50logger{50}):%msg%n'
message:
  accessKeyId: 自己的阿里key
  accessKeySecret:自己的阿里key

MessageServiceImpl.java

package com.jjy.messagedemo.util;


import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.dysmsapi20170525.models.SendSmsResponseBody;

import com.aliyun.teaopenapi.models.Config;

import com.aliyun.teautil.models.RuntimeOptions;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Service
public class MessageServiceImpl  {
    @Value("${message.accessKeyId}")
    private String accessKeyId;
    @Value("${message.accessKeySecret}")
    private String accessKeySecret;


    /**
     * 使用AK&SK初始化账号Client
     * @param accessKeyId
     * @param accessKeySecret
     * @return Client
     * @throws Exception
     */

    private Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                .setAccessKeyId(accessKeyId)
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new Client(config);
    }




    public void sendMessage(String phoneNumber,String code) throws Exception {
        Client client = createClient(accessKeyId, accessKeySecret);
        SendSmsRequest sendSmsRequest = new SendSmsRequest()
                .setSignName("智境漫游")
                .setTemplateCode("SMS_465442065")
                .setPhoneNumbers(phoneNumber)
                .setTemplateParam("{\"code\":\""+code+"\"}");
        RuntimeOptions runtime = new RuntimeOptions();
        // 复制代码运行请自行打印API的返回值
        SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
        SendSmsResponseBody body = sendSmsResponse.getBody();
        if ("OK".equals(body.getCode())){
            System.out.println("success");
        }else{
            System.out.println("error");
        }
    }
}

test.java

package com.jjy.messagedemo;


import com.jjy.messagedemo.util.MessageServiceImpl;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class MessagedemoApplicationTests {
    @Autowired
    private MessageServiceImpl messageService;

    @Test
    void contextLoads() throws Exception {

     messageService.sendMessage("15035899338","1438438");
    }

}

注意:
因为申请的是阿里云短信个人服务,而不是企业服务,需要测试的发送手机号都必须在短信控制台进行绑定才能进行发送成功

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中北萌新程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值