springboot集成阿里云短信服务,实现发送短信功能

springboot集成阿里云短信服务,实现发送短信功能

准备工作:
1.登陆阿里云—>进入控制台—>开通短信服务(进入后根据提示开通)
springboot集成阿里云短信服务,实现发送短信功能_第1张图片
2.充值(借人家平台发短信你以为不要钱的?我充了3元,够用了)
springboot集成阿里云短信服务,实现发送短信功能_第2张图片3.获取AccessKey和AccessSercet(想当与你的身份标识,代码中会用到)
新用户一般没有,需要创建,创建方式如下:
springboot集成阿里云短信服务,实现发送短信功能_第3张图片
推荐使用子用户Accesskey
springboot集成阿里云短信服务,实现发送短信功能_第4张图片

springboot集成阿里云短信服务,实现发送短信功能_第5张图片
springboot集成阿里云短信服务,实现发送短信功能_第6张图片
创建完成后会显示AccessKeyID和AccessKeySecret,一定要保存,一定要保存,一定要保存!

springboot集成阿里云短信服务,实现发送短信功能_第7张图片
4.申请签名和模板,代码中需要用到 签名 和 模板的code(签名的申请比较难,我搞了差不多三个小时,为此还激活了冻结的微信公众号)
建议大家在申请签名的时候先看看签名的规则。
springboot集成阿里云短信服务,实现发送短信功能_第8张图片
5.开始编程(实际就是拷贝阿里云提供的示例代码)
查看示例:
springboot集成阿里云短信服务,实现发送短信功能_第9张图片
填写相关参数:
springboot集成阿里云短信服务,实现发送短信功能_第10张图片
绿框中的方法需要注意:可能是由于依赖(拷贝到项目前记得先导入依赖,依赖贴在本博客的最后)版本不同,导致方法名有所不同。我项目中就遇到了找不到绿框中4个方法的问题

如果不懂参数什么意思 可以点击 或者 查看apt文档
springboot集成阿里云短信服务,实现发送短信功能_第11张图片
6.贴一下我项目里的代码(更具个人情况做些许改动)

@Component
public class AliyunSmsUtils {
    Logger logger = LoggerFactory.getLogger(AliyunSmsUtils.class);
    @Autowired
    private AliyunSmsSendProperty aliyunSmsSendProperty;

    public String sendMess(String phone,String code){
        logger.info(aliyunSmsSendProperty.getAccessKeyId());
        logger.info(aliyunSmsSendProperty.getAccessSecret());
        logger.info(aliyunSmsSendProperty.getSingleName());
        logger.info(aliyunSmsSendProperty.getTemplateCode());
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunSmsSendProperty.getAccessKeyId(), aliyunSmsSendProperty.getAccessSecret());
        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("RegionId", "cn-hangzhou");
        request.putQueryParameter("PhoneNumbers", phone);
        request.putQueryParameter("SignName", aliyunSmsSendProperty.getSingleName());
        request.putQueryParameter("TemplateCode", aliyunSmsSendProperty.getTemplateCode());
        request.putQueryParameter("TemplateParam", "{\"code\":"+code+"}");
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
            return response.getData();
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
        return null;
    }

}

7.依赖

<dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.0.3</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>2.1.0</version>
        </dependency>

参考文档:https://blog.csdn.net/qq_38225558/article/details/84954935

你可能感兴趣的:(java)