SpringBoot整合阿里短信服务
导读
由于最近手头上需要做个Message Gateway,涉及到:邮件(点我直达)、短信、公众号(点我直达)等推送功能,网上学习下,整理下来以备以后使用。
步骤

登录短信服务控制台
开通短信服务

快速学习

测试短信发送

发送短息
报一下错误信息
抱歉!发送出错了。错误码Code:isv.AMOUNT_NOT_ENOUGH。建议前往“短信接口调用错误码”帮助文档,根据错误码查询错误原因及建议。
查看错误码显示,提示余额不足,先充点钱进去

账户里充点钱进去,我充了3元

再次发送消息

收到的短信测试消息

查看demo

查看sdk

添加依赖即java代码示例

注意事项
签名和短信模板自己添加!!!!!点我直达



具体请求参数,请查阅API文档


创建AccessKey和AccessSercet
相当于用户的身份标识,项目中需要用到~



SpringBoot代码实现
添加依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.4.6</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>4.17.6</version>
</dependency>

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.11.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.ybchen</groupId>
<artifactId>springboot-sms</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-sms</name>
<description>SpringBoot整合阿里短信服务</description> <properties>
<java.version>1.8</java.version>
</properties> <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--阿里短信服务-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.4.6</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-ecs</artifactId>
<version>4.17.6</version>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>
pom.xml
控制层
package com.ybchen.springbootsms.controller; 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.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController; /**
* @ClassName:SmsController
* @Description:TODO
* @Author:chenyb
* @Date:2020/11/30 10:59 上午
* @Versiion:1.0
*/
@RestController
public class SmsController {
@GetMapping("sendSms")
public Object sendSms(){
//区域id、accessKeyId、secret
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "LTAI4GDpBasmRFrABc8oNLNm", "FZ8hqtLe8xeh1Nb285olKBL5lBiX9F");
IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.setSysMethod(MethodType.POST);
request.setSysDomain("dysmsapi.aliyuncs.com");
request.setSysVersion("2017-05-25");
request.setSysAction("SendSms");
//区域id
request.putQueryParameter("RegionId", "cn-hangzhou");
//发送的手机号
request.putQueryParameter("PhoneNumbers", "199500000000");
//签名
request.putQueryParameter("SignName", "ABC商城");
//模板
request.putQueryParameter("TemplateCode", "SMS_205887565");
//数据,json格式替换短信模板的内容
request.putQueryParameter("TemplateParam", "{\"code\":\"9999\"}");
CommonResponse response = null;
try {
response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
return response;
}
}
发送短信


错误码文档
APIdemo调试
SpringBoot整合阿里短信服务的更多相关文章
- PHP接入阿里云市场 阿里短信服务DEMO
		
阿里短信服务:支持三大运营商短信.智能管道等优质能力,产品特点:3秒可达.99%到达率.超低资费. 使用阿里短信服务步骤: 1.购买服务 到https://market.aliyun.com/prod ...
 - PHP开发实用-阿里短信服务(Short Message Service)
		
步骤 1 使用阿里云短信服务正常发短信需要 短信签名 短信模板 1申请短信签名 根据用户属性来创建符合自身属性的签名信息.企业用户需要上传相关企业资质证明,个人用户需要上传证明个人身份的证明. ...
 - 阿里云短信服务(JAVA)
		
一,前言  短信验证码想必大家都不陌生,在很多网站,APP中都有使用到.比如登录,注册,身份校验等场景.不过通常情况下,短信服务都是外包给第三方公司的,接下来向大家分享如何使用阿里的短信服务. 二, ...
 - python3配置阿里云短信服务
		
1.申请阿里云短信服务,具体步骤看我的python2-Django配置短信服务 2.安装依赖 aliyun-python-sdk-core-v3 aliyun-python-sdk-dysmsapi= ...
 - springboot 使用阿里云短信服务发送验证码
		
一.申请阿里云短信服务 1.申请签名 2.申请模板 3.创建accesskey(鼠标悬停在右上角头像) 二.代码实现 1.springboot引入maven依赖 <dependency> ...
 - springboot 项目使用阿里云短信服务发送手机验证码
		
1.注册阿里云账户进行账号实名认证 2.申请短信签名和模板 3.创建access_key和access_secret 4.然后就是代码编写 一.找到产品与服务里面的云通信模块,然后找到短信服务,开通短 ...
 - 阿里云短信服务bug
		
接入阿里云短信服务,在springboot中写测试方法,执行到 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou ...
 - java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况
		
java springboot activemq 邮件短信微服务,解决国际化服务的国内外兼容性问题,含各服务商调研情况 邮件短信微服务 spring boot 微服务 接收json格式参数 验证参数合 ...
 - 六、springboot 简单优雅是实现短信服务
		
前言 上一篇讲了 springboot 集成邮件服务,接下来让我们一起学习下springboot项目中怎么使用短信服务吧. 项目中的短信服务基本上上都会用到,简单的注册验证码,消息通知等等都会用到.所 ...
 
随机推荐
- PHP实现页面静态化的简单方法分享
			
为什么要页面静态化? 1.动态文件执行过程:语法分析-编译-运行 2.静态文件,不需要编译,减少了服务器脚本运行的时间,降低了服务器的响应时间,直接运行,响应速度快:如果页面中一些内容不经常改动,动态 ...
 - spark求相同key的最大值
			
需求: 求相同key的最大值 [("a", 3), ("a", 2), ("a", 5), ("b", 5), ...
 - Linux和MySQL的安装与基本操作
 - Stimulsoft Reports和Dashboards发布新版本2020.5具有多项改进
			
Stimulsoft仪表工具实现所需的数据可视化和自己的信息图表.该产品能够应用必要的过滤器和排序,汇总数据,执行任何复杂度的计算.该产品的优势在于其多功能性-能够为您的业务,财务,销售,行业等任何领 ...
 - uniapp分享功能-系统分享
			
uni-app分享 uniapp官网地址:https://uniapp.dcloud.io/api/plugins/share?id=sharewithsystem 调用系统分享组件发送分享消息,不需 ...
 - Python UnboundLocalError: local variable 'xxx' referenced before assignment 解决方法
			
一.报错含义: val=9 def test(): print(val) val = 6 print(val) test() 翻译:本地变量xxx引用前没有定义. 二.报错原因 这是Python变量作 ...
 - NoSQL数据库的四大分类的分析
			
分类 Examples举例 典型应用场景 数据模型 优点 缺点 键值(key-value) Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 内容缓 ...
 - sdasd
			
create PROCEDURE v4(in c_year int) BEGIN declare num int(10) default 0; declare num1 int(10); select ...
 - Delphi ADO更新条件
			
转https://blog.51cto.com/kinwar/1686710 代码将导致 ADO 在 WHERE 子句中包括的每个字段.如果您想确保所做的当前用户更新才会成功如果为表格中的行中的任何字 ...
 - MySQL全面瓦解11:子查询和组合查询
			
概述 子查询是SQL查询中的重要一块,是我们基于多表之间进行数据聚合和判断的一种手段,使得我们的处理复杂数据更加的便捷,这一节我们主要来了解一下子查询. 先做一下数据准备,这边建立三张表:班级.学生. ...