短信查询API(QuerySendDetails)---Java
本文为您介绍Java调用短信查询API的操作流程。
短信发送记录查询接口(QuerySendDetails)
用于查询短信发送的状态,是否成功到达终端用户手机
入参列表
参数名称 | 参数类型 | 必填与否 | 样例取值 | 参数说明 |
---|---|---|---|---|
PhoneNumber | String | 必须 | 1390000**** | 短信接收号码,如果需要查询国际短信,号码前需要带上对应国家的区号,区号的获取详见国际短信支持国家信息查询API接口。 |
BizId | String | 可选 | 1234^1234 | 发送流水号,从调用发送接口返回值中获取。 |
SendDate | String | 必须 | 20170525 | 短信发送日期格式yyyyMMdd,支持最近30天记录查询。 |
PageSize | Number | 必须 | 10 | 页大小Max=50。 |
CurrentPage | Number | 必须 | 1 | 当前页码。 |
出参列表
出参名称 | 出参类型 | 样例取值 | 参数说明 |
---|---|---|---|
RequestId | String | 8906582E-6722 | 请求ID。 |
Code | String | OK | 状态码-返回OK代表请求成功,其他错误码详见错误码列表。 |
Message | String | 请求成功 | 状态码的描述。 |
TotalCount | Number | 100 | 发送总条数。 |
smsSendDetailDTOs | Object | - | 发送明细结构体,详见Demo样例。 |
Demo样例
出参名称 | 出参类型 | 样例取值 | 参数说明 |
---|---|---|---|
phoneNum | String | 1390000**** | 手机号码。 |
sendStatus | Number | 1 | 发送状态 1:等待回执,2:发送失败,3:发送成功。 |
errCode | String | DELIVERED | 运营商短信错误码。 |
templateCode | String | SMS_000 | 模板ID。 |
content | String | 【阿里云】你好! | 短信内容。 |
sendDate | Object | 2017-05-25 00:00:00 | 发送时间。 |
receiveDate | String | 2017-05-25 00:00:00 | 接收时间。 |
outId | String | 123 | 外部流水扩展字段。 |
技术对接步骤
1:下载SDK工具包
SDK工具包中一共包含了2个类库,一个aliyun-java-sdk-core包,另外一个是alicom-dysms-api包,将这两个包执行mvn package命令或者mvn deploy命令打包出相应的jar包,添加到工程类库中依赖使用。
SDK&DEMO[下载地址]
2:编写样例程序
//设置超时时间
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//云通信产品-短信API服务产品名称(短信产品名固定,无需修改)
final String product = "Dysmsapi";
//云通信产品-短信API服务产品域名(接口地址固定,无需修改)
final String domain = "dysmsapi.aliyuncs.com";
//此处需要替换成开发者自己的AK信息
final String accessKeyId = "yourAccessKeyId";
final String accessKeySecret = "yourAccessKeySecret";
//初始化ascClient
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
//组装请求对象
QuerySendDetailsRequest request = new QuerySendDetailsRequest();
//必填-号码
request.setPhoneNumber("150000000");
//可选-调用发送短信接口时返回的BizId
request.setBizId("1234567^8901234");
//必填-短信发送的日期支持30天内记录查询(可查其中一天的发送数据),格式yyyyMMdd
request.setSendDate("20170513");
//必填-页大小
request.setPageSize(10L);
//必填-当前页码从1开始计数
request.setCurrentPage(1L);
//hint 此处可能会抛出异常,注意catch
QuerySendDetailsResponse querySendDetailsResponse = acsClient.getAcsResponse(request);
//获取返回结果
if(querySendDetailsResponse.getCode() != null && querySendDetailsResponse.getCode().equals("OK")){
//代表请求成功
}