查询短信发送结果

GET
https://api.itniotech.com/sms/getReport?appId={appId}&msgIds={msgIds}
查询指定msgId集合的发送结果,支持查询最近90-120天的短信记录。
 
请求参数
appId
String
必填
应用id(短信-短信应用)
msgIds
String
必填
sendSms接口响应返回的平台id,多个用英文逗号分隔,单次查询最大200个msgId
 
请求示例
Request URL:
    https://api.itniotech.com/sms/getReport?appId=4luaKsL2&msgIds=2108021054011000095,2108021059531000096
Request Method:
    GET
Request Headers:
    Content-Type: application/json;charset=UTF-8
    Sign: 05d7a50893e22a5c4bb3216ae3396c7c
    Timestamp: 1630468800
    Api-Key: bDqJFiq9
 
响应参数
参数 说明 类型
status 状态码,0成功,其他失败参见响应状态码说明 String
reason 失败原因说明 String
success 发送成功的条数 String
fail 发送失败的条数 String
sending 正在发送的条数 String
nofound Id未找到的条数(包含队列中的短信) String
array 找到发送结果的json集合 JSONArray
msgId 提交号码对应平台msgId String
number 提交号码 String
receiveTime 发送时间,ISO8601标准时间格式(2021-02-12T09:30:03+08:00) String
status 发送状态:0发送成功,-1:发送中,1:发送失败(不包含队列中的短信) String
 
响应状态码
status 状态说明
0 成功
-1 认证错误
-2 Ip访问受限
-11 定时时间格式不对
-14 Field为空或者查询id异常
-16 超出时间范围限制
-18 端口程序异常
-19 请联系业务经理绑定通道
 

LANGUAGE

Java

PHP

Curl

Python

REQUEST

package com.itniotech.api.demo.sms;

import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;

import java.net.URLEncoder;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

private void getReport() {
    final String baseUrl = "https://api.itniotech.com/sms";
    final String apiKey = "your api key";
    final String apiPwd = "your api secret";
    final String appId = "{{appId}}";
    final String msgIds = "{{msgIds}}";
    final String url = baseUrl.concat("/getReport");
    final CharSequence sendSmsTemplate = "?appId={}&msgIds={}";
    HttpRequest request = HttpRequest.get(url.concat(StrUtil.format(sendSmsTemplate, appId, msgIds)));
    
    // currentTime
    final String datetime = String.valueOf(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());
    // generate md5 key
    final String sign = SecureUtil.md5(apiKey.concat(apiPwd).concat(datetime));
    request.header(Header.CONNECTION, "Keep-Alive")
    .header(Header.CONTENT_TYPE, "application/json;charset=UTF-8")
    .header("Sign", sign)
    .header("Timestamp", datetime)
    .header("Api-Key", apiKey);
    HttpResponse response = request.execute();
    if (response.isOk()) {
        String result = response.body();
        System.out.println(result);
    }
} 

REQUEST

header('content-type:text/html;charset=utf8');

$apiKey = "your api key";
$apiSecret = "your api secret";
$appId = "{{appId}}";
$msgIds = "{{msgIds}}";
$url = "https://api.itniotech.com/sms/getReport?appId=$appId&msgIds=$msgIds";
$timeStamp = time();
$sign = md5($apiKey.$apiSecret.$timeStamp);
$headers = array('Content-Type:application/json;charset=UTF-8',"Sign:$sign","Timestamp:$timeStamp","Api-Key:$apiKey");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 600);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

$output = curl_exec($ch);
curl_close($ch);
var_dump($output);

REQUEST

curl -X GET 'https://api.itniotech.com/getReport?appId={{appId}}&msgIds={{msgIds}}'
-H 'Timestamp: {datetime}'
-H 'Api-Key: {apiKey}'
-H 'Sign: {sign}'
-H 'Content-Type: application/json;charset=UTF-8'

REQUEST

import hashlib
import time
import requests
import json

base_url = "https://api.itniotech.com/sms/"
api_key = "your api key"
api_pwd = "your api secret"
appid = "{{appId}}"
msgIds = "{{msgIds}}"

def create_headers():
timestamp = int(time.time())
s = "%s%s%s" % (api_key, api_pwd, str(timestamp))
sign = hashlib.md5(s.encode(encoding='UTF-8')).hexdigest()
headers = {
    'Content-Type': 'application/json;charset=utf-8',
    'Sign': sign,
    'Timestamp': str(timestamp),
    'Api-Key': api_key
}
return headers

headers = create_headers()

url = "%s/getReport" % base_url
print(url)

params = {"appId": appid, "msgIds": "8613000000000,8613000000001"}
print(params)

rsp = requests.get(url, params, headers=headers)
if rsp.status_code == 200:
res = json.loads(rsp.text)
print(res)
 

RESPONSEEXAMPLE

{
    "status": "0",
    "reason": "success",
    "success": "2",
    "fail": "0",
    "sending": "0",
    "nofound": "0",
    "array": [
        {
            "msgId": "2108021054011000095",
            "number": "91856321412",
            "receiveTime": "2021-02-12T09:30:03+08:00",
            "status": "0"
        },
        {
            "msgId": "2108021059531000096",
            "number": "91856321413",
            "receiveTime": "2021-02-12T09:30:03+08:00",
            "status": "0"
        }
    ]
}