Springboot对接阿里云短信服务

一、开通阿里云短信服务以及访问账号

1、如果初次打开阿里云短信服务,我们就可以看到“免费开通”的按钮:

1689644596793656.png

2、阿里云也很贴心地告诉我们,实现短信分为四步走:

1689644743221817.png

3、申请签名:

1689817740145540.png

4、申请模板(签名审核通过后,才可以申请基于它的模板):

1689818006412666.png

5、审核全部通过后的效果:

1689818054765532.png

1689818586306330.png

6、在等待审核的过程中,我们可以先去创建一个用户并申请AccessKey,用于访问控制(仅用于SMS短信服务):

1689646681104956.png

咱们只有一次机会获取到AccessKey Secret,所以一定要保存好!

1689646801373020.png

为该用户添加权限:

1689646968167440.png

然后确认,即可完成授权配置!


二、如果审核迟迟不通过,我们也可以使用“阿里云【专用】测试签名/模板”先把开发工作推进下去:

1、先绑定自己的测试手机号:

1689648418885826.png

2、选择测试用的签名/模板:

1689648675712252.png

3、在OepnAPI门户网站上进行操作:

点击发起调用,我们的测试手机号就可以收到一条测试短信!

页面的右侧,就是我们对接需要的Java代码,非常方便!

1689648863596886.png


三、使用Springboot对接阿里云短信服务

1、核心Maven依赖如下:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>dysmsapi20170525</artifactId>
        <version>2.0.9</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

2、首先,我先使用简单使用一个测试方法测试可行性:

package com.jiguiquan.www;

import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SbAliyunSmsApplicationTests {

    public static final String accessKeyId = "LTAI5t*********79orJ";
    public static final String accesskeySecret = "lp84IqQ**********dw4QyMJ8";
    public static final String endPoint = "dysmsapi.aliyuncs.com";

    @Test
    void contextLoads() {
    }
    
    @Test
    public void simleSend() throws Exception {
        Config config = new Config().setAccessKeyId(accessKeyId).setAccessKeySecret(accesskeySecret).setEndpoint(endPoint);
        Client client = new Client(config);
        SendSmsRequest sendSmsRequest = new SendSmsRequest().setSignName("阿里云短信测试")
                .setTemplateCode("SMS_154950909")
                .setPhoneNumbers("18652907029")
                .setTemplateParam("{\"code\":\"4567\"}");
        SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
        System.out.println(sendSmsResponse.body);
    }
}

3、运行测试(可以正常收到短信):

1689651460410(1).png

4、如果是正式的签名/模板,我们就可以收到带变量的通知短信:

1689818414552509.png

jiguiquan@163.com

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐