阿里云短信Java接口调用快速入门案例

记录

1.环境准备

1.1 开通阿里云短信服务

  • 注册阿里云账号
  • 进入控制台开通短信服务
  • 需要自己编辑短信模板提交阿里云审核(短信发送需要购买)
  • 获取accessKeyId & secret
    注意:需要开通短信服务权限

1.2 引入依赖

<!-- 阿里云短信 -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.5.3</version>
        </dependency>

2.编码调用(阿里云官方案例)

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;

public class SendSms {
    public static void main(String[] args) {
    	// code是短信验证码,这里测试先写死,生产环境需要用算法随机生成最多6位数字验证码
        String code = "9878";
        // 参数一不需要修改, 参数二、三填写你的个人账户信息
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的accessKeyId",
                "你的secret");
        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");
        // PhoneNumbers指定接收短信手机号码
        request.putQueryParameter("PhoneNumbers", "xxxxxxxxxxx");
        // SignName指定你在阿里云控制台短信服务中申请并审核通过的空间名
        request.putQueryParameter("SignName", "xxxx");
        // TemplateCode指定你在阿里云控制台配置的短信模板
        request.putQueryParameter("TemplateCode", "xxxxx");
        /**
         TemplateParam将随机生成的验证码作为请求参数发送,此验证码会加入到你的短信模板中
         注意: 请求参数为JSON格式,key名称为code
        **/
        request.putQueryParameter("TemplateParam", "{\"code\":\"" + code + "\"}");
        try {
            CommonResponse response = client.getCommonResponse(request);
            // 获取响应结果,可查看到发送的状态
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

生产环境下可以把验证码存入redis,设置过期时间

为方便自己查看特此记录!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值