用阿里云短信服务--发送短信demo

一. AccessKey管理

内容包括:开启子用户AccessKey,创建用户组,给用户组添加sms短信服务权限,创建用户,添加用户到用户组中。

详细操作:

登录阿里云,点击控制台右上角的头像,点击AccessKey 管理,拿到阿里云AccessKey

弹出安全提示,点击 开始使用子用户AccessKey

进入RAM 访问控制,新建用户组和用户

 

添加用户

填写登录名称和显示名称,勾选编程访问(一定要勾选,不然没法通过API编程发送短信

点击用户组名称

点击组员管理,添加组员,将刚才创建的用户添加到用户组中 

进入人员管理-->用户-->认证管理-->用户AccessKey-->点击创建AccessKey

弹出AccessKey Secret(密码),点击下载CSV文件或复制,保存好密码,

密码不要泄露给其他人,如果发现泄露,点击上图的禁用或删除相关的AccessKey。

 

二、开通阿里云短信服务

内容:开通短信服务、充值、添加短信模板、添加签名

控制台搜索短信服务-->点击箭头指向的短信服务

开通后,可以点击快速学习和帮助文档学习。

 

添加短信模板

提交后,进入审核中状态,等待审核通过(等待几分钟,刷新页面),关注模板CODE一列的值,后面将用到

添加签名

然后等待审核通过(需要等待几分钟) 

 

在发短信之前,需要先充值,点击费用-->充值,根据短信资费(0.045元/条),充值一定的金额。

 

三、使用Java代码发送短信

环境:IDEA、JDK1.8、maven3.3.9、Sparingboot2.2.7

打开IDEA,File-->New-->Project-->Empty Project,新建出一个空的工程

给空的工程添加Spring Boot模块

File-->New-->Module-->Spring Initializr

next-->next-->添加Web模块

至finish,确保module模块添加到空工程中。

打开短信服务控制台-->SDK参考-->安装Java SDK-->添加Maven依赖

添加pom.xml

添加aliyun-java-sdk-core用于发送短信,

为了方便构建数据,再添加fastjson

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.62</version>
        </dependency>

 

点击快速学习,选择如下箭头指向的信息,点击查看API demo

 看到如下图代码界面

复制上方Java代码到DemoApplicationTests.java类中,代码作适当的修改如下:

代码如下:

import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.HashMap;

@SpringBootTest
class DemoApplicationTests {

    @Test
    void contextLoads() {
        //连接阿里云
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");//accessKeyId和accessSecret要替换成第一步申请到的值
        
        IAcsClient client = new DefaultAcsClient(profile);

        //构建请求
        CommonRequest request = new CommonRequest();
        request.setMethod(MethodType.POST);
        request.setDomain("dysmsapi.aliyuncs.com");//不要修改
        request.setVersion("2017-05-25");//不要修改
        request.setAction("SendSms");

        request.putQueryParameter("PhoneNumbers", "1xxxx");//替要发送到的手机号码
        request.putQueryParameter("SignName", "老梁说java");//短信签名
        request.putQueryParameter("TemplateCode", "SMS_189762676");//短信模板号
        //构建一个短信验证码
        HashMap<String, Object> map = new HashMap<String, Object>();
        map.put("code",112233);
        request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map));
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }

}

注意:以下几点要注意修改

1.accessKeyId和accessSecret要替换成第一步申请到的值 

2.("PhoneNumbers", "1xxxx");//替要发送到的手机号码

3.("SignName", "老梁说java");//短信签名

4.("TemplateCode", "SMS_189762676");//短信模板号

 

单元测试运行contextLoads()方法后就可以发送短信了。

收到的短信效果如下:

 

完成!enjoy it!

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值