SpringBoot整合阿里短信服务

导读

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

步骤

  点我直达

SpringBoot整合阿里短信服务

登录短信服务控制台

  点我直达

开通短信服务

SpringBoot整合阿里短信服务

快速学习

SpringBoot整合阿里短信服务

测试短信发送

SpringBoot整合阿里短信服务

发送短息

  报一下错误信息

抱歉!发送出错了。错误码Code:isv.AMOUNT_NOT_ENOUGH。建议前往“短信接口调用错误码”帮助文档,根据错误码查询错误原因及建议。

查看错误码显示,提示余额不足,先充点钱进去

SpringBoot整合阿里短信服务

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

SpringBoot整合阿里短信服务

再次发送消息

SpringBoot整合阿里短信服务

收到的短信测试消息

SpringBoot整合阿里短信服务

查看demo

SpringBoot整合阿里短信服务

查看sdk

SpringBoot整合阿里短信服务

添加依赖即java代码示例

SpringBoot整合阿里短信服务

注意事项

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

SpringBoot整合阿里短信服务

SpringBoot整合阿里短信服务

SpringBoot整合阿里短信服务

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

SpringBoot整合阿里短信服务

SpringBoot整合阿里短信服务

创建AccessKey和AccessSercet

  相当于用户的身份标识,项目中需要用到~

SpringBoot整合阿里短信服务

SpringBoot整合阿里短信服务

SpringBoot整合阿里短信服务

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>
SpringBoot整合阿里短信服务
<?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;
    }
}

发送短信

SpringBoot整合阿里短信服务

SpringBoot整合阿里短信服务

错误码文档

  点我直达

APIdemo调试

  点我直达

上一篇:(已解决) centos6.5 yum源 失效 The whole CentOS 6 is dead and shouldn’t be used anywhere at all


下一篇:docker制作基础镜像,报错“Delta RPMs disabled because /usr/bin/applydeltarpm not installed,Could not resolve h