java实现短信通知、验证码

java实现短信通知、验证码,第1张

java实现短信通知、验证码

        目的是用Java实现短信单发功能,可以是验证码或者短信通知,我这里使用阿里云短信服务。

        开发前要做一些准备工作,首先注册一个阿里云账号,实名认证之类的就不细说了,然后看一下api文档,文档指引写的很清楚,先按照文档一步步 *** 作到签名和模板创建完成,并设置访问权限,这样就可以拿到我们需要的几个参数(RAM用户id和key,签名、模板)了。

        接下来看下代码,先打开 OpenAPI开发者门户体验一下如何调用,如下图,填上几个必要的参数(在前面的准备工作拿到,这里测试不用填RAM用户id和key),点击”发起调用“,成功发送短信就说明参数正确。可以看到在左边填上参数后,右边代码对应set参数,明白了怎么入参调用,我们开始来写自己的代码(其实就是搬运代码emmm)。

         先引入sdk依赖,鼠标指到sdk依赖信息那里就可以看到依赖,把它复制到你的pom里。

        再然后就是复制代码,做一些修改就可以了,下面是我的代码:

1.主要代码

package com.example.util;

import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.teaopenapi.models.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.util.Random;


@Component
public class MessageUtil {
    
    @Value("${messageService.accessKeyId}")
    private String accessKeyId;
    
    @Value("${messageService.accessKeySecret}")
    private String accessKeySecret;
    
    @Value("${messageService.templateCode1}")
    private String templateCode;
    
    @Value("${messageService.signName}")
    private String signName;

    
    public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                // 您的AccessKey ID
                .setAccessKeyId(accessKeyId)
                // 您的AccessKey Secret
                .setAccessKeySecret(accessKeySecret);
        // 访问的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new Client(config);
    }

    
    public void sendVerifyCode(String phoneNumber, String templateParam) throws Exception {
        Client client = MessageUtil.createClient(accessKeyId, accessKeySecret);
        SendSmsRequest sendSmsRequest = new SendSmsRequest()
                .setPhoneNumbers(phoneNumber)
                .setSignName(signName)
                .setTemplateCode(templateCode)
                .setTemplateParam("{"code":"+templateParam+"}");
        // 复制代码运行请自行打印 API 的返回值
        client.sendSms(sendSmsRequest);
    }
}

 2.写一个测试类调用

package com.example;

import com.example.util.MessageUtil;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class MyTest {
    @Autowired
    MessageUtil messageUtil;
    @Test
    public void messageTest() throws Exception {
        messageUtil.sendVerifyCode("18178605372", "您的验证码为:8888");
    }
}

在application.yml 中配置参数:前面准备的RAM用户id和key在这用到

messageService:
  #阿里云RAM用户id
  accessKeyId: 你创建RAM用户id
  #阿里云RAM用户AccessKey
  accessKeySecret: 你的RAM用户AccessKey
  #短信验证码模板1
  templateCode1: 你申请的模板code
  #短信签名
  signName: 你申请的签名

到此短信单发服务就完成了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5522368.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-13
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存