本文为您介绍JAVA调用短信查询API的操作流程。

短信发送记录查询接口(QuerySendDetails)

用于查询短信发送的状态,是否成功到达终端用户手机

注意 使用短信服务新版SDK调用API接口,请查看新版SDK参考和API参考。

入参列表

参数名称 参数类型 必填与否 样例取值 参数说明
PhoneNumber String 必须 15000000000 短信接收号码,如果需要查询国际短信,号码前需要带上对应国家的区号,区号的获取详见国际短信支持国家信息查询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 13000000000 手机号码。
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")){
        //代表请求成功
      }