阿里云短信服务-个人账户测试短信服务

前言

阿里的短信服务分为三块,一是阿里云短信服务,二是云通讯,三是阿里大于,不过后期都会统一到阿里云短信服务平台的,所以这里只需要学习如何使用阿里云短信服务就可以了。
如果是个人开发者,项目呢还没上线,项目中还需要用到短信服务,想熟悉一下短信服务的代码调用,那看这个教程就对了。

一、免费开通短信服务

传送门

注册登录,然后点击免费开通
在这里插入图片描述

二、创建AccessKey

在这里插入图片描述

这里一定要把AccessKeyId和AccessKeySecret 记录下来!!!

AccessKeyIdAccessKeySecret
xxxxxxxxxx

三、创建签名

在这里插入图片描述
这里的签名名称建议使用ABC商城,使用其他的审核不容易通过。适用场景选择验证码,不要选择通用!!!因为选择通用要上传一大堆东西,太麻烦。

四、创建模板

在这里插入图片描述建议就和这个一样,变量只支持一个,模板类型一定选“验证码”。否则审核很难通过。

五、编码

发送内容实体类

短信服务中的变量及其值要以json字符串的形式作为参数传入,因为拼接字符串太过麻烦,这里建议使用实体类转json字符串的形式。

/**
 * 短信内容VO类
 */
@Data
public class AliyunSmsVO1 {
    private String code;    // 验证码
}

发送短信工具类

/**
 * 阿里云短信服务工具类
 */
public class AliyunSmsUtils {
    public AliyunSmsUtils() {
        super();
    }

    //产品名称:云通信短信API产品,开发者无需替换
    static final String product = "Dysmsapi";
    //产品域名,开发者无需替换
    static final String domain = "dysmsapi.aliyuncs.com";

    // TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)
    static final String accessKeyId = "xxxxxx"; // TODO 修改成自己的accessKeyId
    static final String accessKeySecret = "xxxxxx"; // TODO 修改成自己的accessKeySecret
    static final String signName = "ABC商城";
    static final String templateCode = "SMS_206548955";

    /**
     * 发送短信
     * @param telephone 发送的手机号码
     * @param content 发送的内容,json字符串
     * @return
     * @throws ClientException
     */
    public static SendSmsResponse sendSms(String telephone,String content) throws ClientException {
        //可自助调整超时时间
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");
        //初始化acsClient,暂不支持region化
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);
        //组装请求对象-具体描述见控制台-文档部分内容
        SendSmsRequest request = new SendSmsRequest();
        //必填:待发送手机号
        request.setPhoneNumbers(telephone);
        //必填:短信签名-可在短信控制台中找到
        request.setSignName(signName); // TODO 修改成自己的签名
        //必填:短信模板-可在短信控制台中找到
        request.setTemplateCode(templateCode); // TODO 修改成自己的模板CODE
        //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为"{\"code\":\"123456\"}"
        request.setTemplateParam(content);
        //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
        request.setOutId("yourOutId");
        //hint 此处可能会抛出异常,注意catch
        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
        if(sendSmsResponse.getCode()!= null && sendSmsResponse.getCode().equals("OK")){
            System.out.println("短信发送成功!");
        }else {
            System.out.println("短信发送失败!");
        }
        return sendSmsResponse;
    }
  
    public static void main(String[] args) throws ClientException, InterruptedException {
        AliyunSmsVO1 aliyunSmsVO1 = new AliyunSmsVO1();
        aliyunSmsVO1.setCode("11111");
        String s = JSONObject.toJSONString(aliyunSmsVO1);
        //发短信
        SendSmsResponse response =sendSms("xxxxx",s); // TODO 填写你需要测试的手机号码
        System.out.println("短信接口返回的数据----------------");
        System.out.println("Code=" + response.getCode());
        System.out.println("Message=" + response.getMessage());
        System.out.println("RequestId=" + response.getRequestId());
        System.out.println("BizId=" + response.getBizId());
    }
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值