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

您所在的位置:网站首页 阿里云短信业务停机 阿里云短信服务的使用方法

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

2023-10-11 16:53| 来源: 网络整理| 查看: 265

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

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

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

使用详情

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

申请AccessKey和AccessKey Secret。注册签名。注册模板。代码使用 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包时,需要导入下面的依赖

com.aliyun aliyun-java-sdk-core 4.0.3

先来看代码

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 map = new HashMap(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 表示的是使用的签名名称,这个名称个人账户只允许申请一个,所以应该好找

在这里插入图片描述

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

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3