一、短信发送
1. 申请AccessKey
在使用阿里云SMS之前,需要先申请一个AccessKey。申请方式为进入阿里云控制台获取,需要输入身份信息,完成身份验证后就可以获取到AccessKey。
// 阿里云短信SDK的Java代码示例
IAcsClient acsClient = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers("13800000000");
request.setSignName("示远科技");
request.setTemplateCode("SMS_71150113");
request.setTemplateParam("{\"code\":\"1234\"}");
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
2. 编写API程序
使用阿里云提供的SMS API,可以轻松地调用短信发送功能,以下是Java代码示例。首先创建一个IAcsClient对象,并根据模板规则设置好请求参数,然后通过调用getAcsResponse()方法获得发送结果。
3. 短信发送API参数说明
建议在使用短信发送API时先熟悉下面这些参数的用途,可以更准确地设置短信发送的各种规则。
参数一:PhoneNumbers短信接收号码,支持csv格式,最多一次性发送1000个号码,号码之间以英文逗号分隔。如"13000000000,13500000000"。
参数二:SignName短信签名名称,阿里云控制台创建签名后获取,必须是已审核通过的签名。如示例中的"示远科技"。
参数三:TemplateCode短信模板ID,阿里云控制台创建模板后获取,必须是已审核通过的关键字模板。如示例中的"SMS_71150113"。
参数四:TemplateParam短信模板变量参数,值为JSON格式的字符串。如示例中的"{\"code\":\"1234\"}"。
二、短信模板
1. 模板类型
阿里云SMS支持两种类型的短信模板:普通和变量。其中普通短信模板仅用于发送固定内容的短信,而变量短信模板可以在发送时替换模板中的变量内容。
2. 模板规则
在使用阿里云SMS的短信模板时,需要知道模板格式和模板规则。模板格式包括模板内文本、变量符号和变量名,例如:验证码${code}。变量符号和变量名可以自定义,阿里云SMS会根据请求参数中的变量名进行自动替换。模板规则是指验证码、短信内容、变量等在发送时的要求。
3. 模板审核
在使用阿里云SMS发送短信模板时,必须先提交审核。审核过程包括模板内容审核和签名审核两个部分,总的时间时长大约为1~2天。审核通过后的模板ID才能用于短信发送。
三、短信上行
1. 上行概述
除了短信发送功能外,阿里云SMS还支持短信上行功能。短信上行是指短信接收者通过短信回复的方式将信息回传到短信平台,由平台接收并处理。
2. 上行流程
短信上行流程为:设备发送短信至阿里云SMS平台,平台接收信息并判断是否符合规则要求,如果符合则会将信息分发至接收短信的应用程序。应用程序可以使用类似短信发送的API接口获取信息并处理。
// 阿里云短信SDK的Java代码示例
IAcsClient acsClient = new DefaultAcsClient(profile);
QueryInterSmsIsoInfoRequest request = new QueryInterSmsIsoInfoRequest();
request.setStartTime(startTime);
request.setEndTime(endTime);
request.setQueryTimeUnit("min");
QueryInterSmsIsoInfoResponse queryInterSmsIsoInfoResponse = acsClient.getAcsResponse(request);
3. 上行API参数说明
使用阿里云SMS的短信上行功能,使用上行API接口设置以下参数:
参数一:startTime查询起始时间,格式为"yyyyMMddHHmmss"。
参数二:endTime查询结束时间,格式为"yyyyMMddHHmmss"。
参数三:queryTimeUnit查询单位,根据时间跨度不同设置不同单位。如本示例中的"min"。
四、短信状态
1. 状态概述
阿里云SMS支持短信状态查询功能。短信状态是指短信发送方在发送后,能够获得短信的发送状态,包括成功、失败、待审核等状态。
2. 状态查询流程
短信状态查询流程为:设备发送短信至阿里云SMS平台,平台接收信息并进行处理,设备使用短信状态API接口查询结果并处理。
// 阿里云短信SDK的Java代码示例
IAcsClient acsClient = new DefaultAcsClient(profile);
QuerySendDetailsRequest request = new QuerySendDetailsRequest();
request.setPhoneNumber("13800000000");
request.setSendDate("20190910");
request.setPageSize(10L);
request.setCurrentPage(1L);
QuerySendDetailsResponse querySendDetailsResponse = acsClient.getAcsResponse(request);
3. 状态查询API参数说明
使用阿里云SMS的短信状态查询功能,使用状态查询API接口设置以下参数:
参数一:PhoneNumber短信接收号码。
参数二:SendDate短信发送日期,支持30天内的数据查询,格式为yyyyMMdd。
参数三:PageSize分页大小,默认值为10。
参数四:CurrentPage当前页码,默认值为1。
五、结语
阿里云SMS提供了丰富的功能,包括短信发送、短信模板、短信上行和短信状态查询等。通过API接口可以轻松地接入阿里云SMS服务,同时可以使用阿里云控制台进行操作和管理。无论是企业用户还是个人用户,都可以通过阿里云SMS实现快速、高效、安全的短信发送。