阿里云短信服务的使用方法

本人个人博客地址https://www.lightingsui.com

介绍

最近由于项目的业务需要,想使用验证码登录系统,所以要找一个短信平台,第一目标就是阿里云的短信服务平台,说实话,之前在阿里云买过很多东西了,例如云ECS服务器、云mysql、SSL证书、域名,那就再次为阿里云做出点贡献吧,我的钱不是通过淘宝送给马云的!!!

在这里插入图片描述

这里我直接给出阿里云短信服务的地址:https://www.aliyun.com/product/sms?utm_content=se_1003099122

开通我就不说了,我先来说一下费用的问题,刚开始我就在费用这犹豫了,并不了解阿里云短信服务的收费机制,以为要先购买,所以拉倒底部发现购买只能购买套餐,但是我们的使用量小,不想购买套餐,想使用按条收费的。

在这里插入图片描述

所以刚开始我都打算放弃阿里云了,强制用户购买套餐?其实并不是,阿里云是这么收费的,可以不购买套餐,只需直接使用就可以了,根据你当月发送了多少条,月底进行收费,但是在你的阿里云账户里需要有余额(为了防止你月底不清账吗,所以先让你存点),所以充好钱等着自动扣费就行了。乖乖等着吧!

在这里插入图片描述

收费是有阶梯制度的,发送的短信数量越多是越便宜的。阿里云这有好几种短信类型:验证码短信、短信通知、推广短信、还有港澳台的,常用的也就是前三个吧,我是用的就是验证类短信。就是专门发验证码的短信通知。

使用详情

使用阿里云短信服务需要以下几个步骤

  1. 申请AccessKey和AccessKey Secret。
  2. 注册签名。
  3. 注册模板。
  4. 代码使用
1、AccessKey和AccessKey Secret

这个AccessKey和AccessKey Secret是什么呢,其实就是账号密码,咱们登录阿里云官网的账号和密码并不能在代码中使用,在代码中想要登录阿里云就需要使用AccessKey和AccessKey Secret了,它和密码同等重要,所以不要告诉别人。AccessKey就相当于阿里云账号,AccessKey Secret就是密码,只不过这两个是在代码中的账号与密码,与我们网站登录的账号和密码没什么两样。

在这里插入图片描述

没有用过短信服务的应该没有下面的那一条,因为我已经使用了,所以大家自动忽略,看箭头所指的方向,点击去创建AccessKey和AccessKey Secret。

2、签名

签名可能大家都是特别熟悉,但是不是你想的那种签名,这种签名就相当于短信开头的LOGO,例如
在这里插入图片描述

【阿里云】就是签名,这个申请完了每次发送短信的时候会自动加上的,不用我们手动去加,添加签名:

在这里插入图片描述

这里面需要注意的一点就是在填写这个表的时候,不要加【】,这个系统会自动为我们加的。
在这里插入图片描述

审核也是比较快的,大概一个小时左右就能审核完了。

3、模板

模板又是什么呢,模板就是短信的内容,只不过模板中可以指定一些变量,我们使用的时候可以给这些变量赋值,还是挺灵活的呢。

在这里插入图片描述

例如我使用了code这个变量,那么这个变量名就一定要记住,一会代码中是要使用的,我们需要用实际的值去替换这个变量。添加完了之后等待审核就可以了。

在这里插入图片描述

4、java的应用

阿里的短信服务我是应用web中的,所以我此次以java代码举例,其实阿里为好多种编程语言都配备了使用案例,文档地址:https://help.aliyun.com/product/44282.html?spm=5176.12207334.0.0.7e281cbeln5j0I

当使用maven管理jar包时,需要导入下面的依赖

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

先来看代码

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 com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.HashMap;
import java.util.Map;

public class SendSms {
    public static void main(String[] args) throws JsonProcessingException {
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",
                "accessKeyID", "accessKey Secret");
        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", "photo_number");
        request.putQueryParameter("SignName", "Repository");
        request.putQueryParameter("TemplateCode", "SMS_178766379");
        Map<String, String> map = new HashMap<String, String>(2);
        map.put("code", "123321");
        request.putQueryParameter("TemplateParam", new ObjectMapper().writeValueAsString(map));
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

我们刚才使用的模板为尊敬的用户,您的注册会员动态密码为:${code},请勿泄漏于他人!

此时,就需要将code进行赋值了,putQueryParameter这个api的最后一个参数就是进行参数的赋值,但是接收的是一个json格式的字符串,所以我们先将code作为键(键的名字要和模板中的变量名对应上),变量值作为value放在map中,然后使用jackson将map转化为json字符串。有几个变量就可以将几个变量的名字作为key放在map中。

注意:如果putQueryParameter最后一个参数只是放了普通字符串,那么返回结果中将提示

{"Message":"JSON参数不合法","RequestId":"89BB2BDB-2B91-4B5A-AB0E-67860C8E9C03","Code":"isv.INVALID_JSON_PARAM"}

接下来就是修改accessKey和accessKey secret

在这里插入图片描述

将此处的两个换成你刚才申请到的就可以了。cn-hangzhou参数不用动。

在这里插入图片描述

第一处就是给哪个手机号发送,填上对应的手机号即可,第二处就是模板的名称。与下图的对应,想用哪个模板就使用哪个编号

在这里插入图片描述

Sign 表示的是使用的签名名称,这个名称个人账户只允许申请一个,所以应该好找

在这里插入图片描述

接下来执行,手机即可收到短信。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值