本文为您介绍.NET调用短信查询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工具包

1、sdk工具包在解压后可以找到 aliyun-net-sdk-core.dll 和 aliyun-net-sdk-dysmsapi.dll 这两个文件。(net3.5和net2.0的用户请使用/api_demo/net2.0目录下的;core2.0的用户请使用、api_demo/core2.0/目录下的)

2、在您的Visual Studio上右键点击项目,再单击添加引用 > 浏览(如果您用的是 MonoDevelop,请按照导入 DLL 的相应方法导入这个 .dll 文件),选择以上 .dll 文件,单击确定按钮。 您就可以在工程中使用阿里云云通信短信服务的C# SDK 了。

SDK&DEMO【下载地址】

2: 编写样例程序

public static QuerySendDetailsResponse querySendDetails(String bizId)
        {
            //初始化acsClient,暂不支持region化
            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.PhoneNumber = "15000000000";
            //可选-流水号
            request.BizId = bizId;
            //必填-发送日期 支持30天内记录查询,格式yyyyMMdd       
            request.SendDate = DateTime.Now.ToString("yyyyMMdd");
            //必填-页大小
            request.PageSize = 10;
            //必填-当前页码从1开始计数
            request.CurrentPage = 1;

            QuerySendDetailsResponse querySendDetailsResponse = null;
            try
            {
                querySendDetailsResponse = acsClient.GetAcsResponse(request);
            }
            catch (ServerException e)
            {
            }
            catch (ClientException e)
            {
            }
            return querySendDetailsResponse;
        }