接口说明
-
所有接口数据都使用UTF-8进行编码和解码
-
数据格式使用JSON格式,http请求头需根据接口要求进行设置Content-Type
-
API_KEY, API_SECRET需客户登录管理平台获取
GET sign值计算
如果没有请求参数则_sign为API_SECRET的MD5加密串; MD5加密的字符串
Content-Type:application/json
请求方式: GET
url请求示例: HOST + /api/v2/{API_KEY}/API_PATH/?k1=v1&k2=v2&_sign={SIGN}
示例 参数:k1=v1&k2=v2
示例 API_SECRET: AAAAAAAAAA
1. 按照"k=v" 的格式对参数进行拼接,eg: ["k2=v2","k1=v1"]
2. 对第一步的字符串排序(正序),eg: ["k1=v1","k2=v2"]
3. 顺序拼接排序后的字符串 eg: "k1=v1k2=v2"
4. 拼接 API_SECRET, eg: 'k1=v1k2=v2AAAAAAAAAA'
5. 使用MD5进行签名计算得出 _sign值 eg: "283081c5d254390aa7dcf74f3315bb5b"
POST sign值计算(application/json)
如果没有请求参数则_sign为API_SECRET的MD5加密串; MD5加密的字符串
Content-Type:application/json
请求方式: POST
url请求示例: HOST + /api/v2/{API_KEY}/API_PATH/?_sign={SIGN}
示例 参数:"{\"k1\":\"v1\",\"k2\":\"v2\"}"
示例 API_SECRET: AAAAAAAAAA
1. 请求数据拼接API_SECRET, eg: "{\"k1\":\"v1\",\"k2\":\"v2\"}AAAAAAAAAA"
2. 使用MD5进行签名计算得出 _sign值 eg: "ba2b783869ad504e5349056171d40074"
POST sign值计算(multipart/form-data)
Content-Type:multipart/form-data
multipart/form-data 类型的请求时会有文件类型参数,计算_sign值时排除文件数据,仅非文件类型参数参与计算。
请求方式: POST
url请求示例: HOST + /api/v2/{API_KEY}/API_PATH/?_sign={SIGN}
示例 参数:{"k1":"v1","k2":"v2","file":"文件类型数据"}
参与计算sign的参数:{"k1":"v1","k2":"v2"}
示例 API_SECRET: AAAAAAAAAA
1. 按照"k=v" 的格式对参数进行拼接,eg: ["k2=v2","k1=v1"]
2. 对第一步的字符串排序(正序),eg: ["k1=v1","k2=v2"]
3. 顺序拼接排序后的字符串 eg: "k1=v1k2=v2"
4. 拼接 API_SECRET, eg: 'k1=v1k2=v2AAAAAAAAAA'
5. 使用MD5进行签名计算得出 _sign值 eg: "283081c5d254390aa7dcf74f3315bb5b"
Python代码示例
"""
python3.6+
"""
import hashlib
api_secret = "1111111111111111111"
# GET请求
params = {"k1":"v1","k2":"v2"}
params = ''.join(sorted([f'{k}={v}' for k, v in params.items()]))
sign_string = params + api_secret
_sign1 = hashlib.md5(sign_string.encode()).hexdigest()
print(_sign1) # a3794616b746a6e7a41699a0ebeb1778
# POST application/json
# 计算sign的数据应和请求的数据一致
request_body = b"{\"k1\":\"v1\",\"k2\":\"v2\"}"
params = bytes.decode(request_body)
sign_string = params + api_secret
_sign2 = hashlib.md5(sign_string.encode()).hexdigest()
print(_sign2) # dbcbee5b8ba2c9c14b1b749d016be975
# POST multipart/form-data
# 排除文件参数,其他参数参与sign值计算
params = {"k1":"v1","k2":"v2", "file": "文件类型数据"}
# 参与计算sign值的参数
params = {"k1":"v1","k2":"v2"}
params = ''.join(sorted([f'{k}={v}' for k, v in params.items()]))
sign_string = params + api_secret
_sign3 = hashlib.md5(sign_string.encode()).hexdigest()
print(_sign3) # a3794616b746a6e7a41699a0ebeb1778
接口变动记录
| 版本 | 修改 |
|---|---|
V2.47 |
增加预警规则回调说明 |
V2.46 |
增加运营商MTS相关信息查询接口 |
V2.45 |
增加批量查询桔猫卡信息接口 |
V2.44 |
增加产品变更、产品变更结果查询接口 |
V2.43 |
增加物联网卡充值记录查询、物联网卡充值记录查询结果接口 |
V2.42 |
增加卡状态变更、卡状态变更结果查询接口 |
V2.41 |
增加单卡、批量历史位置查询接口 |
V2.40 |
物联卡信息、批量查询物联卡信息增加销户月份 |
V2.39 |
新增定位查询功能产品信息接口 |
V2.38 |
获取物联网卡H5实名链接,增加认证URL类型参数 |
V2.37 |
新增流量池相关接口 |
V2.36 |
新增充值订单状态查询接口、新增物联卡平台接口调用示例程序 |
V2.35 |
新增物联卡语音功能相关接口、增加机卡分离停机情况单卡查询接口 |
V2.34 |
充值生效模式默认值修改 |
V2.33 |
充值添加生效模式 |
V2.32 |
为响应工信部要求,关闭点对点短信功能 |
V2.31 |
短信发送接口增加指定发送带签名短信参数 |
V2.30 |
修改物联卡信息接口、批量查询卡信息接口返回值 |
V2.26 |
增加获取物联网卡H5实名链接接口 |
V2.25 |
删除基站定位接口,修改物联卡定位接口说明 |
V2.24 |
增加人脸身份信息校验接口,优化sign计算说明和代码示例 |
V2.21 |
物联卡信息接口增加总流量字段,整理状态码 |
V2.0 |
1、取消token验证方式,采用API_KEY和API_SECRET的验证方式;2、 修改部分API响应的JSON格式 |
接口详情
计费组列表
接口说明
获取用户所有计费组
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/billing_group/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数:
无
HTTP响应
Content-Type:application/json
{
"data": {
"rows": [
{
"carrier": "运营商",
"bg_code": "计费组代码",
"vup_code": "流量池代码",
"name": "套餐名称",
"data_plan": "套餐大小"
},
...
]
}
"code": 200,
}
示例
请求:
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/billing_group/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应:
{
"data": {
"rows": [
{
"bg_code": "lx-test-YD",
"vup_code": "LLC00652001",
"name": "30M",
"carrier": "中国移动",
"data_plan": "30.000"
},
{
"bg_code": "lx-test-LT",
"vup_code": "",
"name": "30M",
"carrier": "中国联通",
"data_plan": "30.000"
},
{
"bg_code": "lx-test-DX",
"vup_code": "LLC00652002",
"name": "30M",
"carrier": "中国电信",
"data_plan": "30.000"
}
]
},
"code": 200
}
流量池列表
接口说明
获取用户所有流量池
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/usage_pool/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数:
无
HTTP响应
Content-Type:application/json
{
"data": {
"rows": [
{
"code": "流量池代码",
"name": "流量池名称",
"carrier": "运营商",
"bgs": ["计费组代码列表"],
"data_plan": "流量池总流量"
},
...
]
}
"code": 200,
}
示例
请求:
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/usage_pool/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应:
{
"data": {
"rows": [
{
"code": "LLC00652001",
"name": "移动-测试流量池",
"carrier": "中国移动",
"bgs": ["lx-test-YD", "lx-test-YD1"],
"data_plan": "2048.000"
},
{
"code": "LLC00652002",
"name": "移动-测试流量池2",
"carrier": "中国移动",
"bgs": ["lx-test-YD3", "lx-test-YD4"],
"data_plan": "2048.000"
}
]
},
"code": 200
}
卡号列表
接口说明
获取所有的卡号
接口地址
http://ec.upiot.net /api/v2/{API_KEY}/card_no_list/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数:
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
bg_code |
string |
可选 |
可选,无此参数返回账户内所有的卡,否则返回计费组内的卡 |
outbound_date_start |
string |
可选 |
可选,出库日期-起始, 格式 YYYYMMDD, 出库日期-起始<=出库日期-结束, 查看请求出库日期-起始 到 出库日期-结束 内范围中的卡,无此参数则返回账户内所有卡 |
outbound_date_end |
string |
可选 |
可选,出库日期-结束, 格式 YYYYMMDD, 出库日期-起始<=出库日期-结束, 查看请求出库日期-起始 到 出库日期-结束 内范围中的卡,无此参数则返回账户内所有卡 |
page |
int |
可选 |
请求的第几页,可选,默认为第1页 |
per_page |
int |
可选 |
每页显示数量,可选,默认每页显示100张 |
HTTP响应
Content-Type:application/json
{
"data": {
"rows": [
{
"msisdn": msisdn,
"iccid": iccid,
"imsi": imsi,
"imsi2": imsi2,
"imei": imei
}
...
],
"page": 1,
"per_page": 100,
"num_pages": 134
}
"code": 200,
}
示例
请求:
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card_no_list/?_sign=24c312a06f45e3043ed1924e8353c460\&bg_code=lx-test-YD
响应:
{
"data": {
"rows": [
{
"msisdn": "10648XXXX3929",
"iccid": "898602BXXXXXX0020010",
"imsi": "",
"imsi2": "",
"imei": ""
},
{
"msisdn": "10648XXXX7219",
"iccid": "898602BXXXXXX0257185",
"imsi": "",
"imsi2": "",
"imei": ""
},
{
"msisdn": "10648XXXX0306",
"iccid": "898602BXXXXXX0020032",
"imsi": "46004XXXXXX0035",
"imsi2": "",
"imei": ""
},
...
],
"per_page": 100,
"page": 1,
"num_pages": 3
},
"code": 200
}
流量池计费组统计信息
接口说明
获取用户非累计卡流量池计费组的月统计信息(不包含单卡、累计卡计费组),包含 总卡数、激活卡数、总流量、已用流量等信息。
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/billing_group/pool_info/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/小时
HTTP请求
参数:
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
month |
int |
可选 |
查询月份, 若无此参数则查询当月数据(该统计数据只有2018年之后的)。 |
HTTP响应
Content-Type:application/json
{
"data": {
"rows": [
{
"carrier": "运营商",
"bg_code": "计费组代码",
"name": "套餐名称",
"data_plan": "套餐大小",
"total_card_count": "总卡数",
"active_card_count": "激活卡数",
"pool_size": "总流量(激活卡数*套餐大小)",
"data_usage": "激活卡已用流量",
"voice_pool_size": "语音池大小",
"voice_usage": "付费语音用量",
"billing_mode": "流量模式(0: 单卡, 1:共享(流量池))",
"voice_billing_mode": "语音模式(0: 单卡, 1:共享(语音池))"
},
...
]
}
"code": 200,
}
示例
请求:
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/billing_group/pool_info/?_sign=49efebd5b6486d0980be7b6a19325b78\&month=201810
响应:
{
"data": {
"rows": [
{
"carrier": "中国移动",
"bg_code": "lx-test-YD",
"name": "30M",
"data_plan": "30.000",
"total_card_count": 210,
"active_card_count": 209,
"pool_size": "6270.000",
"data_usage": "65.224",
"voice_usage": 0,
"voice_pool_size": 0,
"voice_billing_mode": 1,
"billing_mode": 1
},
{
"carrier": "中国联通",
"bg_code": "lx-test-LT",
"name": "30M",
"data_plan": "30.000",
"total_card_count": 13,
"active_card_count": 13,
"pool_size": "390.000",
"data_usage": "0.000",
"voice_usage": 0,
"voice_pool_size": 0,
"voice_billing_mode": 1,
"billing_mode": 1
},
...
]
},
"code": 200
}
流量池当前统计信息
接口说明
获取用户流量池的当前统计信息(仅支持流量池),包含 总卡数、激活卡数、总流量、已用流量等信息。
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/usage_pool/info/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/小时
HTTP请求
参数:
HTTP响应
Content-Type:application/json
{
"data": {
"rows": [
{
"code": "流量池代码",
"name": "流量池名称",
"carrier": "运营商",
"total_card_count": "流量池可用卡数",
"active_card_count": "流量池激活卡数",
"data_plan": "流量池总流量(MB)",
"data_usage": "流量池已用流量(MB)"
},
...
]
}
"code": 200,
}
示例
请求:
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/usage_pool/info/?_sign=49efebd5b6486d0980be7b6a19325b78\&month=201810
响应:
{
"data": {
"rows": [
{
"code": "LLC00652001",
"name": "移动-测试流量池",
"carrier": "中国移动",
"total_card_count": 1,
"active_card_count": 1,
"data_plan": "1024.000",
"data_usage": "0"
},
{
"code": "LLC00652002",
"name": "联通-测试流量池",
"carrier": "中国联通",
"total_card_count": 1,
"active_card_count": 1,
"data_plan": "1024.000",
"data_usage": "0"
},
...
]
},
"code": 200
}
物联卡信息
接口说明
单张物联卡信息查询
计费结束日期表示过此日期后物联卡失效,计费结束日期当日物联卡有效
共享累计卡(如1G/年)的总流量显示为空,请按照流量池查询
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/?_sign={SIGN}
调用方式
HTTP GET
频率限制:160次/分钟
HTTP请求
参数:
物联卡号在接口地址中体现, <msisdn|iccid|imsi>
HTTP响应
Content-Type: application/json
卡状态参考:卡状态对照表
{
"data": {
"msisdn": "10648xxxx1234",
"iccid": "8986xxxx1234",
"imsi": "4600xxxxxxx0515",
"imsi2": "xxxx",
"carrier": 运营商,
"sp_code": 短信端口号,
"data_plan": 套餐大小,
"expiry_date": 计费结束日期,
"data_usage": 当月流量,
"account_status": 卡状态,
"active": 激活/未激活,
"test_valid_date": 测试期起始日期,
"silent_valid_date": 沉默期起始日期,
"outbound_date": 出库日期,
"active_date": 激活日期,
"support_sms": 是否支持短信,
"data_balance": 剩余流量,
"test_used_data_usage": 测试期已用流量,
"sim_type": "sim卡类型",
"accumulated": "是否是累计卡,boolean类型",
"code": "计费组code",
"data_traffic_amount": "总流量",
"valid_date": "计费起始日期",
"out_data_usage": "超出用量",
"customize_comment": "标签",
"inactive_month": "销户月份",
"outbound_product_months": "出库业务时长(月)",
"cycle_data_usage": "当前周期已使用流量"
}
"code": 200,
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10648XXXX3929/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"data": {
"msisdn": "10648XXXX3929",
"iccid": "898602BXXXXXX0020010",
"imsi": "",
"imsi2": "",
"carrier": "中国移动",
"sp_code": "10648XXXX4411",
"data_plan": "30.000",
"expiry_date": "2018-12-31",
"data_usage": "0.000",
"account_status": "11",
"active": false,
"test_valid_date": "2018-10-01",
"silent_valid_date": "2018-10-01",
"outbound_date": "2018-10-24",
"active_date": null,
"support_sms": true,
"data_balance": "0.000",
"test_used_data_usage": "0.000",
"sim_type": "双切卡",
"accumulated": true,
"code": "1LXGW002G21",
"data_traffic_amount": "2048.000",
"valid_date": "2018-10-24",
"out_data_usage": 0,
"customize_comment": "标签1;标签2",
"inactive_month": 0,
"outbound_product_months": 12,
"cycle_data_usage": "2048.000"
},
"code": 200
}
批量查询卡信息
接口说明
共享累计卡(如1G/年)的总流量显示为空,请按照流量池查询
频率限制:60次/分钟
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/batch/card/info/?_sign={SIGN}
调用方式
HTTP POST
请求格式:
Content-Type: application/json
HTTP请求
参数:
| 名称 | 类型 | 说明 | 是否可为空 |
|---|---|---|---|
iccids |
List |
多个ICCID,最多50个卡号 |
不能和msisdns同时为空 |
msisdns |
list |
多个msisdn, 最多50个卡号 |
不能和iccids同时为空 |
请求示例:
{
"msisdns": [
"14402619xxxxx",
"14402619xxxxx"
]
}
HTTP响应示例
{
"code": 200,
"data": [
{
"msisdn": "14402619xxxxx",
"iccid": "898604261020711xxxxx",
"imsi": "46004461921xxxx",
"imsi2": "",
"carrier": "中国移动",
"sp_code": "1064899104411",
"data_plan": "30.000",
"data_usage": "0.000",
"account_status": "00",
"active": true,
"outbound_date": "2020-07-30",
"test_valid_date": "2020-07-01",
"silent_valid_date": "2020-07-01",
"valid_date": "2020-07-01",
"expiry_date": "2021-09-30",
"active_date": "2020-07-30",
"support_sms": true,
"data_balance": "30.000",
"sim_type": "三切卡",
"accumulated": false,
"code": "1LXGW30M21",
"data_traffic_amount": "30.000",
"out_data_usage": 0,
"test_used_data_usage": "0.000",
"customize_comment": "标签1;标签2",
"inactive_month": 0,
"outbound_product_months": 12,
"cycle_data_usage": "2048.000"
},
{
"msisdn": "14402682xxxxx",
"iccid": "898604261020712xxxxx",
"imsi": "4600446820xxxxx",
"imsi2": "",
"carrier": "中国移动",
"sp_code": "1064899102085",
"data_plan": "2048.000",
"data_usage": "0.000",
"account_status": "00",
"active": true,
"outbound_date": "2020-05-22",
"test_valid_date": "2020-05-01",
"silent_valid_date": "2020-05-01",
"valid_date": "2020-08-01",
"expiry_date": "2021-07-31",
"active_date": "2020-08-01",
"support_sms": true,
"data_balance": "2048.000",
"sim_type": "双切卡",
"accumulated": false,
"code": "1LXGW002G21",
"data_traffic_amount": "2048.000",
"out_data_usage": 0,
"test_used_data_usage": "0.000",
"customize_comment": "标签1;标签2",
"inactive_month": 0,
"outbound_product_months": 12,
"cycle_data_usage": "2048.000"
}
],
"msg": "ok"
}
批量查询桔猫卡信息
接口说明
频率限制:60次/分钟
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/batch/oc_card/info/?_sign={SIGN}
调用方式
HTTP POST
请求格式:
Content-Type: application/json
HTTP请求
参数:
| 名称 | 类型 | 说明 | 是否可为空 |
|---|---|---|---|
iccids |
List |
多个ICCID,最多50个卡号 |
不能和msisdns、imsis同时为空 |
msisdns |
list |
多个msisdn, 最多50个卡号 |
不能和iccids、imsis同时为空 |
imsis |
list |
多个msisdn, 最多50个卡号 |
不能和iccids、msisdns同时为空 |
请求示例:
{
"iccids": [
"9986402619xxxxx",
"89862619xxxxx",
"89862453xxxxx"
]
}
HTTP响应示例
{
"code": 200,
"data": [
{
"msisdn": "桔猫卡MSISDN",
"iccid1": "移动子卡ICCID",
"iccid2": "联通子卡ICCID",
"iccid3": "电信子卡ICCID",
"imsi1": "移动子卡IMSI",
"imsi2": "联通子卡IMSI",
"imsi3": "电信子卡IMSI",
"data_usage1": "移动子卡当月流量",
"data_usage2": "联通子卡当月流量",
"data_usage3": "电信子卡当月流量",
},
{
"msisdn": "1400077xxxxx",
"iccid2": "8986402619xxxxx",
"iccid3": "8986368646xxxxx",
"imsi2": "46006xxxxxxx",
"imsi3": "30583230271xxxx",
"data_usage2": "23.000",
"data_usage3": "25.000",
},
{
"msisdn": "1400077xxxxx",
"iccid1": "8986567876xxxxx",
"iccid2": "8983446519xxxxx",
"iccid3": "4556433446xxxxx",
"imsi1": "6043234xxxxxx",
"imsi2": "3564534xxxxxx",
"imsi3": "8654434xxxxxx",
"data_usage1": "1.000",
"data_usage2": "20.000",
"data_usage3": "3.000",
},
],
"msg": "ok"
}
批量查询单日用量信息
接口说明
注意:该接口返回的日用量为单日数据,非当月累计数据
只支持查询 当月或近7日 日用量数据
频率限制:60次/分钟
每次最多100张卡
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/daily/usagelog/?_sign={SIGN}
调用方式
HTTP POST
请求格式:
Content-Type: application/json
HTTP请求
参数:
| 名称 | 类型 | 说明 | 是否可为空 |
|---|---|---|---|
iccids |
List |
多个ICCID,最多100个卡号,联通支持19位号码 |
不能和msisdns同时为空 |
msisdns |
list |
多个msisdn, 最多100个卡号 |
不能和iccids同时为空 |
query_date |
String |
查询日期(格式:2021-09-08) |
否 |
返回参数
| 名称 | 父级节点 | 类型 | 说明 |
|---|---|---|---|
usage_info |
data |
List |
用量列表 |
iccid |
usage_info |
String |
iccid |
msisdn |
usage_info |
String |
卡号 |
daily_usage |
usage_info |
String , null |
为null时表示流量未同步 |
请求示例:
{
"iccids" : [
"8986061914006867000",
"8986061703008003000",
"8986061914006850000",
"8986061904000489000"
],
"query_date" : "2021-07-08"
}
HTTP响应示例
{
"code": 200,
"msg": "ok",
"data": {
"usage_info": [
{
"iccid": "898602B6101650000000",
"msisdn": "1064867710000",
"daily_usage": "6.000"
},
{
"iccid": "898602B6101650000008",
"msisdn": "1064867740000",
"daily_usage": null # 表示未同步到用量
}
],
"date": "2022-02-28"
}
}
物联卡月用量信息
接口说明
批量物联卡月用量信息查询(传入卡号,最多50条) 返回,月用量和月剩余量(流量,语音,短信(无剩余数据))和其他基础信息,查询历史月份时,月剩余量为null 支持查询最近6个月销户的卡
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card_usage_info/?_sign={SIGN}
调用方式
HTTP POST
频率限制:25次/分钟
HTTP请求
Content-Type:application/json
请求内容格式:
{
"msisdns": ["10648***1234","89860402101****62225", "46004240****000"],
"month": 201810
}
msisdns,支持多个物联卡号(msisdn/iccid/imsi,可混合),最多50个
month,可选,无此参数返回当月数据,支持查询最近12个月用量信息
HTTP响应
Content-Type: application/json
卡状态代码:卡状态对照表
运营商代码: 运营商对照表
{
"data": {
"rows": [
{
"msisdn": "msisdn",
"iccid": "iccid",
"imsi": "imsi",
"imsi2": "imsi2",
"account_status": 卡状态,
"carrier": 运营商,
"data_usage": 流量用量,
"data_balance": 剩余流量,
"data_plan": 流量套餐,
"voice_usage": 语音用量,
"voice_balance": 剩余语音,
"voice_mo": 语音呼出时长(秒),
"voice_mt": 语音呼入时长(秒),
"voice_plan": 语音套餐,
"sms_mo": 上行短信数量,
"sms_mt": 下行短信数量,
"valid_date": "计费起始日期",
"expiry_date": 计费结束日期,
"test_valid_date": 测试期起始日期,
"silent_valid_date": 沉默期起始日期,
"test_data_usage": 测试期已用流量,
"active_date": 激活日期,
"outbound_date": 出库日期,
"support_sms": 是否支持短信,
"support_voice": 是否支持语音,
"month": 201810,
"bg_code": 计费组code,
"updated_time": "流量更新时间,格式:2020-09-01 01:21",
"exceeded_data": "超出流量(MB)",
"exceeded_voice": "超出语音(分)"
},
...
]
"failed": [], # 查询失败(卡不存在,不属于该账户等)的会放入failed中
}
"code": 200,
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card_usage_info/?_sign=c9a3df281c26d265a9651d70bb26eed6 -d '{"msisdns": ["10648XXXX3929", "10648XXXX7219", "10648XXXX0306"], "month": 201810}'
响应
{
"data": {
"rows": [
{
"msisdn": "10648XXXX3929",
"iccid": "898602BXXXXXX0020010",
"imsi": "",
"imsi2": "",
"account_status": "11",
"carrier": 0,
"data_usage": "0.000",
"data_balance": null,
"data_plan": "30.000",
"voice_usage": null,
"voice_balance": null,
"voice_mo": null,
"voice_mt": null,
"voice_plan": 0,
"sms_mo": null,
"sms_mt": null,
"valid_date": "2018-10-01",
"expiry_date": "2018-12-31",
"test_valid_date": "2018-10-01",
"silent_valid_date": "2018-10-01",
"test_data_usage": null,
"active_date": null,
"outbound_date": "2018-10-24",
"support_sms": true,
"support_voice": false,
"exceeded_data": "0",
"exceeded_voice": "0"
},
{
"msisdn": "10648XXXX0306",
"iccid": "898602BXXXXXX0020032",
"imsi": "46004XXXXXX0035",
"account_status": "00",
"carrier": 0,
"data_usage": "0.000",
"data_balance": null,
"data_plan": "30.000",
"voice_usage": null,
"voice_balance": null,
"voice_mo": null,
"voice_mt": null,
"voice_plan": 0,
"sms_mo": null,
"sms_mt": null,
"valid_date": "2016-02-01",
"expiry_date": "2018-12-31",
"test_valid_date": "2016-02-01",
"silent_valid_date": "2016-02-01",
"test_data_usage": null,
"active_date": "2016-02-03",
"outbound_date": "2016-02-01",
"support_sms": true,
"support_voice": false,
"exceeded_data": "0",
"exceeded_voice": "0"
}
],
"failed": [
"10648XXXX7219"
]
},
"code": 200
}
计费组物联卡月流量日志
接口说明
获取用户计费组下物联卡指定月流量日志,列表中包含:MSISDN,ICCID及指定月流量
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/monthly_usagelog/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数:
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
bg_code |
string |
必填 |
计费组代码 |
page |
int |
可选 |
请求的第几页, 默认为第1页 |
per_page |
int |
可选 |
每页显示数量, 默认每页显示1000张 |
month |
int |
可选 |
查询月份,默认返回当月数据 |
HTTP响应
Content-Type: application/json
{
"data": {
"rows": [
{
"msisdn": "msisdn",
"iccid": "iccid",
"data_usage": 指定月份流量(M)
},
...
],
"num_pages": 3
},
"code": 200
}
data_usage表示所查询月份使用的累计流量
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/monthly_usagelog/?_sign=a498f46b9a468790f388884477f49fcd\&bg_code=lx-test-YD\&month=201810
响应
{
"data": {
"rows": [
{
"msisdn": "10647XXXX0417",
"iccid": "898607BXXXXXX0076546",
"data_usage": 0
},
{
"msisdn": "10647XXXX7023",
"iccid": "898607BXXXXXX0093140",
"data_usage": 0
},
{
"msisdn": "10647XXXX8442",
"iccid": "898607BXXXXXX0094559",
"data_usage": 0
}
...
],
"num_pages": 3
},
"code": 200
}
计费组物联卡月短信日志
接口说明
获取用户计费组下物联卡指定月短信日志,列表中包含:MSISDN,ICCID及指定月上行短信和下行短信数量.上行,下行短信数量均为 0 的卡不会显示出来
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/monthly_sms/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数:
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
bg_code |
string |
必填 |
计费组代码 |
page |
int |
可选 |
请求的第几页, 默认为第1页 |
per_page |
int |
可选 |
每页显示数量, 默认每页显示100张 |
month |
int |
可选 |
查询月份,默认返回当月数据 |
HTTP响应
Content-Type: application/json
mo表示所查询月份上行短信的数量,设备发往短信中心
mt表示所查询月份下行短信的数量,短信中心发往设备
{
"data": {
"rows": [
{
"msisdn": "msisdn",
"iccid": "iccid",
"mo": 指定月份上行短信数量,
"mt": 指定月份下行短信数量
},
...
]
},
"code": 状态码
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/monthly_sms/?_sign=a498f46b9a468790f388884477f49fcd\&bg_code=lx-test-YD\&month=201810
响应
{
"data": {
"rows": [
{
"msisdn": "10648XXXX1447",
"iccid": "898602BXXXXXX0001444",
"mo": 9,
"mt": 3
},
{
"msisdn": "14764XXXX53",
"iccid": "898600DXXXXXX0068153",
"mo": 4,
"mt": 0
},
{
"msisdn": "10648XXXX1900",
"iccid": "898602BXXXXXX0031900",
"mo": 4,
"mt": 0
},
...
]
},
"code": 200
}
物联卡用量日志
接口说明
物联卡当月或指定月份用量日志查询
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/usagelog/?_sign={SIGN}
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/usagelog/<month>/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数
物联卡号在接口地址中体现,<msisdn|iccid|imsi> 。
月份在接口地址中体现,<month> ,例如:201902表示2019年2月。
HTTP响应
Content-Type: application/json
{
"data": {
"rows": [
{
"date": "日期",
"data_usage": "当月用量(M)"
},
...
]
},
"code": 状态码
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10648XXXX3929/usagelog/201810/?_sign=c28270f9eb6a22d3563800e7af461a4b
物联卡每日使用量
接口说明
物联卡查询指定月份每日使用量
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/usagelog/<month>/delta/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
物联卡号在接口地址中体现,<msisdn|iccid|imsi> 。
月份在接口地址中体现,<month> ,例如:201902表示2019年2月。
HTTP响应
Content-Type: application/json
{
"data": {
"rows": [
{
"date": "日期",
"data_usage": "当日用量(M)"
},
...
]
},
"code": 状态码
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10648XXXX3929/usagelog/201810/delta/?_sign=c28270f9eb6a22d3563800e7af461a4b
物联卡用量日志批量查询
接口说明
物联卡指定日期用量日志查询
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/usagelog/?_sign={SIGN}
调用方式
HTTP POST
频率限制:20次/分钟
HTTP请求
Content-Type:application/json
请求内容格式:
{
"msisdns": ["10648***1234"],
"query_date": "YYYYMMDD"
}
msisdns,支持多个物联卡卡号,每次最多100张卡号
query_date, 支持查询最近七日流量
HTTP响应
Content-Type: application/json
{
"data": {
"rows": [
{
"msisdn": "卡号1",
"data_usage": 查询日期用量(M)
},
{
"msisdn": "卡号2",
"data_usage": 查询日期用量(M)
},
...
],
"query_date": "YYYYMMDD",
"failed": ["失败卡号1", "失败卡号2", ...]
}
"code": 状态码,
}
失败卡号为获取查询日期用量失败卡号
示例
请求
curl POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/usagelog/?_sign=23a545cbeaa56f1f81587a18783b57fd -d '{"msisdns": ["1064921001175", "1064806256502", "1064661322711"],"query_date": "20181011"}'
响应
{
"data": {
"rows": [
{
"msisdn": "10649XXXX1175",
"data_usage": "1.120"
},
{
"msisdn": "10648XXXX6502",
"data_usage": "0.540"
},
{
"msisdn": "1064XXXX22711",
"data_usage": "0.120"
}
],
"query_date": "20181011",
"failed": []
},
"code": 200
}
物联卡充值
接口说明
为物联卡进行充值。延后物联卡计费结束日期,并对累计卡增加流量余额。
提示:请检查剩余流量/语音,可能余量不足导致不复机。
由于平台运营需求,每月1号凌晨0:00~4:00充值续费服务暂停。
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/charge/?_sign={SIGN}
调用方式
HTTP POST
频率限制:60次/分钟
HTTP请求
Content-Type: application/json
参数:
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
product_id |
String |
否 |
充值产品ID:通过 物联卡充值产品查询接口 查询到的产品id |
external_no |
String |
否 |
外部订单号 |
effect_type |
String |
是 |
生效模式: "下周期生效": 卡充值不影响当前重置周期内的流量,在当前卡的计费结束日期后,根据具体产品延长对应时间。 "立即生效": 卡充值后当天生效,在当前重置周期内,增加续费产品所充值的流量,在充值当日,根据具体产品延长卡时间(较短)。 注意: 当充值单周期累计产品(非NB充值产品,如:1G/年 等)时,默认立即生效;当充值单周期累计产品(NB充值产品,如:NB50M/年 等)时,默认下周期生效。【月套餐产品、多周期累计产品充值与该字段无关,可不填写】 |
请求数据例子(非单周期累计产品):
{
"product_id": 充值产品ID,
"external_no": 外部订单号
}
请求数据例子(单周期累计产品):
{
"product_id": 充值产品ID,
"external_no": 外部订单号,
"effect_type": "instant", // "instant" 代表 "立即生效", "next_cycle" 代表 "下周期生效"
}
HTTP响应
Content-Type: application/json
{
"data": {
"order_no": "为此次请求创建的充值订单的单号",
"balance": "本次充值后的账户余额",
"new_expiry_date": "充值后物联卡的计费结束日期",
"new_data_balance": "充值后物联卡的剩余流量MB(累计卡才有)"
}
"code": 状态码,
}
示例
请求
curl POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10648XXXX929/charge/?_sign=80db06bb98b7fc1cbb472dbf9f3097a8 -d '{"product_id": "12m", "months": 12, "external_no": "" }'
响应
{
"data": {
"order_no": "201902100000004",
"balance": "30.00",
"new_expiry_date": "2020-02-10",
"new_data_balance": "14.000"
}
"code": 200,
}
流量池充值
接口说明
为流量池进行充值。对流量池增加流量余额。
提示:请检查剩余流量,可能余量不足导致不复机。
由于平台运营需求,每月1号凌晨0:00~4:00充值续费服务暂停。
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/usage_pool/<code>/charge/?_sign={SIGN}
调用方式
HTTP POST
频率限制:60次/分钟
HTTP请求
Content-Type: application/json
参数:
流量池代码在接口地址中体现,<code> ,例如:LLC00652001
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
product_id |
String |
否 |
充值产品ID:通过 流量池充值产品查询接口 查询到的产品id |
external_no |
String |
否 |
外部订单号 |
effect_type |
String |
是 |
生效模式: "下周期生效": 不影响当前重置周期内的流量,在当前计费结束日期后,根据具体产品延长对应时间。 "立即生效": 充值后当天生效,在当前重置周期内,增加续费产品所充值的流量,根据具体产品延长计费结束日期。 |
请求数据例子:(流量池加油包)
{
"product_id": 充值产品ID,
"external_no": 外部订单号
}
请求数据例子:固定流量池充值
{
"product_id": 充值产品ID,
"external_no": 外部订单号
"effect_type": "instant", // "instant" 代表 "立即生效", "next_cycle" 代表 "下周期生效"
}
HTTP响应
Content-Type: application/json
{
"data": {
"order_no": "为此次请求创建的充值订单的单号",
"balance": "本次充值后的账户余额",
"new_data_plan": "充值后流量池的总流量",
"new_data_balance": "充值后流量池的剩余流量MB"
}
"code": 状态码,
}
示例
请求
curl POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/usage_pool/LLC00652001/charge/?_sign=768506bb98b7fc1cbb472dbff90368f4 -d '{"product_id": "0m1024", "months": 1, "external_no": "test01" }'
响应
{
"data": {
"order_no": "P20230820111256cca6ca72",
"balance": "30.00",
"new_data_plan": "1024.000",
"new_data_balance": "1024.000"
}
"code": 200,
}
充值订单状态查询
接口说明
根据充值订单号或外部订单号,查询充值订单状态。
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/charge_order/status/query/?_sign={SIGN}
调用方式
HTTP POST
频率限制:60次/分钟
HTTP请求
Content-Type: application/json
参数:
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
order_no |
String |
是 |
充值订单号,不可与外部订单号同时为空 |
external_no |
String |
是 |
外部订单号,不可与充值订单号同时为空 |
请求数据例子:
{
"order_no": 充值订单号
}
HTTP响应
Content-Type: application/json
{
"data": {
"order_no": "充值订单号",
"external_no": "外部订单号",
"status": "订单状态",
"payment": "付款方式",
"payment_status": "支付状态",
"payment_way": "支付方式",
"amount": "总金额"
}
"code": 状态码,
"msg": "状态说明"
}
示例
请求
curl POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/charge_order/status/query/?_sign=80db06bb98b7fc1cbb472dbf9f3097a8 -d '{"order_no": "P20190104012135369c90df"}'
响应
{
"data": {
"order_no": "P20190104012135369c90df",
"external_no": "C2019010462cf87b256",
"status": "完成",
"payment": "平台充值",
"payment_status": "已付款",
"payment_way": "线上支付",
"amount": "10.00"
}
"code": 200,
"msg": "ok"
}
语音卡白名单添加
接口说明
1、物联卡必须是语音卡,且支持白名单功能的卡,详情请咨询客户经理
2、同一个号码一分钟只能添加一次,多次添加需要自行控制频率
3、移动卡最多设置10个白名单号码,电信卡最多设置5个白名单号码
4、删除接口每月只能调用一次,每次最多删除2张卡,第一次添加当月不能使用删除功能
5、因移动运营商限制,移动卡暂时无法删除语音白名单
6、应运营商要求,发起添加申请后,运营商将向添加白名单号码发送确认短信(每个语音白名单号码每天发送限制最多 10 条短信),需在10分钟内回复同意添加信息
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/set/voice/whitelist/?_sign={SIGN}
调用方式
HTTP POST
频率限制:60次/分钟
HTTP请求
Content-Type: application/json
| 字段 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
oper_type |
String |
否 |
1:添加 2:删除 |
msisdn |
String |
否 |
卡号 |
white_number |
String |
否 |
白名单号码 |
请求参数示例:
添加格式1:
{
"oper_type": 1,
"msisdn": "1480xxxx46",
"white_number": "18217xxxx825"
}
添加格式2:
{
"oper_type": 1,
"msisdn": "1480xxxx46",
"white_number": "18217xxxx825_18217xxxx826"
}
删除格式1:
{
"oper_type": 2,
"msisdn": "1480xxxx46",
"white_number": "18217xxxx825_18217xxxx826"
}
删除格式2:
{
"oper_type": 2,
"msisdn": "1480xxxx46",
"white_number": "18217xxxx825"
}
HTTP响应
Content-Type: application/json
{
"code": "200",
"msg": "添加成功"
}
语音卡白名单查询
接口说明
物联卡必须是语音卡,且支持白名单功能的卡,详情请咨询客户经理
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/query/voice/whitelist/{msisdn/iccid/imsi}/?_sign={SIGN}
调用方式
HTTP GET
频率限制:60次/分钟
HTTP请求
Content-Type: application/json
HTTP响应
Content-Type: application/json
{
"data": {
"msisdn": "14808xxxx46",
"white_list": [
"187xxxx05",
"178xxx828"
]
},
"msg": "查询成功"
}
语音卡白名单批量添加
接口说明
1、物联卡必须是语音卡,且支持白名单功能的卡,详情请咨询客户经理
2、该接口为异步接口,提交成功不代表设置成功,请根据查询接口检查设置情况
3、每次最多操作500个卡号(MSISDN)
4、因移动运营商限制,移动卡暂时无法删除语音白名单
5、应运营商要求,发起添加申请后,运营商将向添加白名单号码发送确认短信(每个语音白名单号码每天发送限制最多 10 条短信),需在10分钟内回复同意添加信息
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/batch/set/voice/whitelist/?_sign={SIGN}
调用方式
HTTP POST
频率限制:10次/分钟
HTTP请求
Content-Type: application/json
| 字段 | 父节点 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|---|
oper_type |
- |
String |
否 |
1:添加 2:删除 |
data |
- |
list |
否 |
白名单号码列表 |
msisdn |
data |
String |
否 |
卡号 |
white_numbers |
data |
list |
否 |
白名单号码列表,oper_type=1:移动卡最多设置10个白名单号码,电信卡最多设置5个白名单号码; oper_type=2:最多传入2个号码 |
请求参数示例:
{
"oper_type": 1,
"data":[{
"msisdn": "1480xxxx46",
"white_numbers": ["18217xxxx825", "18217xxxx826"]
}]
}
HTTP响应
Content-Type: application/json
{
"code": 200,
"msg": "提交成功",
"data": {
"task_id": 364836
}
}
说明: task_id 可以根据 语音卡白名单批量设置任务查询 接口查询任务执行结果信息
语音卡白名单批量查询
接口说明
1、物联卡必须是语音卡,且支持白名单功能的卡,详情请咨询客户经理
2、每次最多查询100个卡号(MSISDN)
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/batch/query/voice/whitelist/?_sign={SIGN}
调用方式
HTTP GET
频率限制:30次/分钟
HTTP请求
Content-Type: application/json
参数
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
msisdns |
string |
否 |
逗号分隔,msisdns和iccids必须传一个 |
iccids |
string |
否 |
逗号分隔 |
HTTP响应
Content-Type: application/json
{
"data": [{
"msisdn": "14808xxxx46",
"white_list": [
"187xxxx05",
"178xxx828"
]
}],
"msg": "查询成功",
"code": "200"
}
语音卡白名单批量设置任务查询
接口说明
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/query/batch/task/?_sign={SIGN}
调用方式
HTTP GET
频率限制:30次/分钟
HTTP请求
参数
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
task_id |
string |
否 |
语音卡批量操作返回的任务id |
HTTP响应
Content-Type: application/json
{
"code": "200",
"msg": "查询成功",
"data": [
{
"msisdn": "14808xxx46",
"white_list": [
"18217xxx30"
],
"result": "【成功】添加成功"
},
{
"msisdn": "1480xxx46",
"white_list": [
"1xxx56831"
],
"result": "【成功】添加成功"
},
{
"msisdn": "14808xxx046",
"white_list": [
"182176xxx2"
],
"result": "【成功】添加成功"
}
]
}
物联卡充值产品查询
接口说明
物联卡充值产品查询
此接口不向子客户开放。
注意: 当充值单周期累计产品(非NB充值产品,如:1G/年 等)时,默认立即生效;当充值单周期累计产品(NB充值产品,如:NB50M/年 等)时,默认下周期生效。【月套餐产品、多周期累计产品充值与该字段无关】
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/charge/products/?_sign={SIGN}
调用方式
HTTP GET
频率限制:60次/分钟
HTTP请求
参数
物联卡号在接口地址中体现,<msisdn|iccid|imsi> 支持msisdn、iccid和imsi查询
HTTP响应
Content-Type: application/json
{
"data": {
"rows": [
{
"months": 1, # 产品充值时长(月数)
"title": "充值一个月", # 产品名称
"id": "1m", # 产品ID
"bg_code": "计费组编码",
"allow_effect_instant": "是否允许立即生效",
"is_nb": "是否为NB卡的产品",
"is_single_term_acc_product": "是否为单周期累计产品"
},
{
"months": 6,
"title": "充值六个月",
"id": "6m",
"bg_code": "计费组编码",
"allow_effect_instant": "是否允许立即生效",
"is_nb": "是否为NB卡的产品",
"is_single_term_acc_product": "是否为单周期累计产品"
},
{
"months": 12,
"title": "充值十二个月",
"id": "12m",
"bg_code": "计费组编码",
"allow_effect_instant": "是否允许立即生效",
"is_nb": "是否为NB卡的产品",
"is_single_term_acc_product": "是否为单周期累计产品"
}
]
},
"code": 200
}
流量池充值产品查询
接口说明
流量池充值产品查询
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/usage_pool/<code>/charge/products/?_sign={SIGN}
调用方式
HTTP GET
频率限制:60次/分钟
HTTP请求
参数
流量池代码在接口地址中体现,<code>
HTTP响应
Content-Type: application/json
{
"data": {
"rows": [
{
"months": 1, # 产品充值时长(月数)
"title": "充值一个月", # 产品名称
"id": "1m", # 产品ID
"bg_code": "计费组编码",
"allow_effect_instant": "是否允许立即生效"
},
{
"months": 6,
"title": "充值六个月",
"id": "6m",
"bg_code": "计费组编码",
"allow_effect_instant": "是否允许立即生效"
},
{
"months": 12,
"title": "充值十二个月",
"id": "12m",
"bg_code": "计费组编码",
"allow_effect_instant": "是否允许立即生效"
}
]
},
"code": 200
}
账户余额查询
接口说明
获取用户账户下流量充值的余额及短信条数余额。
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/balance/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数:
无
HTTP响应
Content-Type:application/json
{
"code": 200,
"data": "流量充值的余额"
}
示例
请求:
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/balance/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应:
{
"data": "941.76",
"code": 200
}
物联卡实时用量(流量、语音)
接口说明
查询物联卡实时流量、语音,暂时仅支持中国联通
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/realtime/?_sign={SIGN}
调用方式
HTTP GET
频率限制:10次/分钟
HTTP请求
参数:
物联卡号在接口地址中体现,<msisdn|iccid|imsi>
HTTP响应
Content-Type: application/json
成功:
{
"data": {
"data_usage": 当月实时流量(M),
"mo_voice": 当月呼出语音(分),
"mt_voice": 当月呼入语音(分)
},
"code": 200,
"msg": "查询成功"
}
失败:
{
"data": {},
"code": 500,
"msg": "查询失败"
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10646XXXX6240/realtime/?_sign=c28270f9eb6a22d3563800e7af461a4b
物联卡状态
接口说明
查询物联卡实时开关机状态和移动网络在线状态
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/status/?_sign={SIGN}
调用方式
HTTP GET
频率限制:10次/分钟
HTTP请求
物联卡号在接口地址中体现,<msisdn|iccid|imsi>
HTTP响应
Content-Type: application/json
power_status: 开机状态:0-开机, 1-关机, 2-查询超时,3-查询失败
gprs_status: 工作状态:"0"-在线,"1"-离线, "2"-查询超时,"3"-查询失败
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10646XXXX6240/status/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"code": 200,
"data": {
"gprs_status": 1, ## 工作状态
"gprs_status_msg": "离线",
"power_status": "0", ## 开关机状态
"power_status_msg": "开机",
"RAT": "2G", ## 网络接入类型
"frequently": false, ## 系统参数无意义,忽略
"IP": "xx.0.0.1", ## 接入IP地址, (部分有,部分没有)
"APN": "xx", (部分有,部分没有)
"net_model": "", ## 无线接入模式(3G/4G) (目前只有电信卡有此字段, 查询失败此字段为`未知`),
"stop_time": "", ## 最后一次下线时间 (目前只有电信卡有此字段, 查询失败此字段为`未知`),
"start_time": "", ## 最后一次上线时间(gprs_status 为`工作状态`或查询失败该值为`未知`) (目前只有电信卡有此字段)
}
}
物联卡短信端口号
接口说明
查询物联卡短信端口号
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/sp_code/?_sign={SIGN}
调用方式
HTTP GET
频率限制:60次/分钟
HTTP请求
物联卡号在接口地址中体现,支持msisdn、iccid和imsi<msisdn|iccid|imsi>
HTTP响应
Content-Type: application/json
{
"data": {
"sp_code": "短信端口号"
},
"code": 状态码
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10646XXXX6240/sp_code/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"data": {
"sp_code": "10655XXXX646"
},
"code": 200
}
短信发送
接口说明
发送短信给指定的物联卡
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/sms/?_sign={SIGN}
调用方式
HTTP POST
频率限制:60次/分钟
HTTP请求
Content-Type:application/json
请求内容格式:
非二进制内容:
{
"msisdns": ["10648***1234"],
"content": "短信内容"
}
二进制内容:
{
"msisdns": ["10648***1234"],
"content": "xOO6ww==",
"binary": true
}
msisdns,支持多个物联卡卡号 binary默认值为false,当需要发送二进制的短信内容时,短信内容需要按base64编码,binary参数值为true。
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
msisdns |
list |
否 |
卡号列表,["10648***1234"] |
content |
string |
否 |
发送内容,二进制内容需要base64编码 |
binary |
bool |
是 |
true/ false , 发送二进制内容时需要传入true |
data_coding |
int |
是 |
(目前只有部分联通卡可用,其他卡暂不可用,需要使用请咨询产品支持) 使用的数据编码类型: 0:短信中心默认字母表;通常是 GSM 编码; 1:IA5/ASCII,但有时是 GSM 编码,取决于短信 中心实施方案; 3:Latin 1 (ISO-8859-1); 4:二进制短信; 8:Unicode UCS2 |
allow_sign |
bool |
是 |
true/ false , 指定发送短信是否带短信签名 |
HTTP响应
Content-Type:application/json
{
"data":{
"rows":[
{
"msisdn": "卡号1",
"sms_id": "短信在平台的唯一标志1"
},
{
"msisdn": "卡号2",
"sms_id": "短信在平台的唯一标志2"
}
....
],
"failed": ["失败卡号1", "失败卡号2", ...]
}
"msg": '提交成功',
"code": 状态码,
}
状态码请参考附录。
示例
请求:
非二进制内容:
curl -X POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/sms/?_sign=5a26120162ad572b93c15308727774ef -d '{"msisdns": ["10648xxxx1234"], "content": "123"}'
二进制内容:
curl -X POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/sms/?_sign=d2b6d318ef618bd6e6857361197adddc -d '{"msisdns": ["10648xxxx1234"], "content": "xOO6ww==", "binary": true}'
响应:
{
"data": {
"rows": [
{
"msisdn": "10648XXXX1234",
"sms_id": 14
}
],
"failed": []
}
"msg": "提交成功",
"code": 200,
}
短信状态查询
接口说明
查询距当前时间二十分钟内状态发生变化的短信。包括上行短信和下行短信的回执。
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/sms/modified/?_sign={SIGN}
调用方式
HTTP GET
频率限制:10次/分钟
HTTP请求
无参数、无内容。
HTTP响应
Content-Type: application/json
{
"data": {
"rows": [
{
"code": 100表示提交、200表示送达、400表示失败,
"msisdn": "物联卡号",
"modified_time": "最近修改时间",
"msg": "附加说明",
"type": "report",
"sms_id": 该短信在平台的唯一标识
},
{
"msisdn": "物联卡号",
"content": "上行短信内容",
"type": "inbox",
"modified_time": "最近修改时间",
"sms_id": 该短信在平台的唯一标识
}
...
]
"code": 状态码,
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/sms/modified/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"data": {
"rows": [
{
"code": 200,
"msisdn": "10648xxxx1234",
"modified_time": "2016-03-01 01:01:01",
"msg": "msg",
"type": "report",
"sms_id": 1
},
{
"msisdn": "10648xxxx1234",
"content": "Inbox",
"type": "inbox",
"modified_time": "2016-03-01 01:01:01",
"sms_id": 2
}
]
"code": 200,
}
短信单卡统计信息查询
接口说明
查询单卡按照日期统计单日上下行发送成功的短信数量。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/sms/?_sign={SIGN}
调用方式
HTTP GET
频率限制:60次/分钟
HTTP请求
参数:
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
date |
String |
不可为空 |
查询日期, 查询日期格式为YYYY-MM-DD |
HTTP响应
Content-Type: application/json
{
"data": {
"mo": 指定日期上行短信数量,
"mt": 指定日期下行短信数量
},
"code": 状态码
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10646XXXX6240/sms/?_sign=90cc5700ce2d5165d1fb45d237e1557f\&date=2018-10-11
响应
{
"data": {
"mo": 0,
"mt": 0
},
"code": 200
}
公告
接口说明
公告。默认内容为空。频率限制6/h。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/notice/?_sign={SIGN}
调用方式
HTTP GET
频率限制:6次/小时
HTTP请求
公告内容在接口中体现。
HTTP响应
Content-Type: application/json
{
"data": {
"content": "内容",
"valid_date": "计费开始日期",
"expiry_date": "计费结束日期"
},
"code": 状态码
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/notice/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"data": {
"content": 尊敬的客户,您好!中国XX XXXX年X月XX日20:00至次日6:00时进行平台升级。在此期间将影响我司物联卡智能管理平台中国移动物联卡的状态查询,数据更新,请您提前做好准备。由此给您带来的不便敬请谅解。特此公告。,
"valid_date" : "2018-10-03T20:00:00Z",
"expiry_date" : "2018-10-04T06:00:00Z",
},
"code": 200,
}
停复机相关接口
接口说明
物联卡停机、复机。部分中国移动物联网卡不支持停复机; 本平台支持操作移动物联卡单日单张卡停机或复机不超过2次,电信、联通物联卡不限次数; 平台停复机操作功能,有一定时延,请勿频繁操作停复机;如有疑问请联系客户经理或客服。
1.若操作原因是“客户用量异常”或“运营商流量异常”,单卡复机后默认本月都不再受规则限制,可一直使用,次月恢复。期间会存在产生超出费用的风险,请在确认接受后再进行操作。
2.若显示复机失败,请联系客服人工处理。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/sor/?_sign={SIGN}
调用方式
HTTP POST
频率限制:10次/分钟
HTTP请求
Content-Type:application/json
请求内容格式
{
"number": "10648***1234",
"callback_no":"回调任务单号",
"type": "停复机类型"
}
停复机类型,分为两种类型。00 表示复机, 01表示停机
HTTP响应
Content-Type: application/json
{
"msg": 返回消息信息,
"code": 状态码,
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/sor/?_sign=e7175bf3c2ffd874a87d5e6310f930c4 -d '{"number": "10648xxxx1234", "type": "00"}'
响应
{
"msg": "操作提交成功",
"code": 200
}
定位查询功能产品信息
接口说明
定位查询功能产品信息
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/locate/products/?_sign={SIGN}
调用方式
HTTP GET
频率限制:5次/分钟
HTTP请求
参数
无
HTTP响应
Content-Type: application/json
{
"data": {
"rows": [
{
"id": 产品ID,
"carrier": "运营商",
"biz_quantity": 定位产品总量,
"residue_num": 剩余定位次数,
"used_num": 已使用定位次数,
}
]
},
"code": 200
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/locate/products/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"code": 200,
"data": {
"rows": [
{
"id": 1,
"carrier": "中国移动",
"biz_quantity": 5000,
"residue_num": 4999,
"used_num": 1,
},
{
"id": 2,
"carrier": "中国联通",
"biz_quantity": 0,
"residue_num": 0,
"used_num": 10,
}
]
}
}
单卡实时位置查询
接口说明
根据物联卡号(msisdn/iccid/imsi),返回经纬度数据,目前只支持部分移动卡、电信4G卡和NB卡、部分联通卡 不同运营商费用标准不同,具体咨询销售经理
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/locate/?_sign={SIGN}
调用方式
HTTP GET
频率限制:5次/分钟
HTTP请求
参数
卡号在URL中
HTTP响应
Content-Type: application/json
{
"data": {
"msg": "提示信息",
"status": true,
"lat": "134.677",
"lon": "12.67"
}
"code": 200,
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027card/10646XXXX6240/locate/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"data": {
"lat": "134.677",
"msg": "定位成功",
"status": true,
"lon": "12.67"
}
"code": 200,
}
单卡历史位置查询
接口说明
查询物联卡最后上网位置经纬度
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/last_locate/?_sign={SIGN}
调用方式
HTTP GET
频率限制:5次/分钟
HTTP请求
参数
卡号在URL中
HTTP响应
Content-Type: application/json
{
"data": {
"msg": "提示信息",
"status": true,
"last_lat": "134.677",
"last_lon": "12.67",
"last_time": "最后一次定位时间"
}
"code": 200,
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027card/10646XXXX6240/last_locate/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"data": {
"msg": "历史定位成功",
"status": true,
"last_lat": "134.677",
"last_lon": "12.67",
"last_time": "2023-12-31 10:23:34"
}
"code": 200,
}
批量历史位置查询
接口说明
批量查询物联卡最后上网位置经纬度,一次最多可查询20张卡
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/batch/card/last_locate/?_sign={SIGN}
调用方式
HTTP POST
频率限制:5次/分钟
HTTP请求
参数
| 名称 | 类型 | 说明 | 是否可为空 |
|---|---|---|---|
cards_no |
List |
多个卡号(支持msisdn、iccid、imsi),最多20个卡号 |
不可为空 |
HTTP响应
Content-Type: application/json
{
"data": 任务ID
"msg": "任务提交成功,请稍后查询结果",
"code": 200
}
示例
请求
curl POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/batch/card/last_locate/?_sign=23a545cbeaa56f1f81587a18783b57fd -d '{"cards_no": ["1440261956748", "1440261956748"]}'
响应
{
"data": 86573,
"msg": "任务提交成功,请稍后查询结果",
"code": 200,
}
批量历史位置查询结果
接口说明
批量历史位置查询任务执行结果查询
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/batch/card/last_locate/result/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
task_id |
int |
否 |
批量历史位置查询返回的批量任务ID |
HTTP响应
Content-Type: application/json
{
"data": [
{
"msisdn": MSISDN,
"iccid": ICCID,
"imsi": IMSI,
"result": {
"last_lon": "经度",
"last_lat": "纬度",
"last_time": "最后一次定位时间"
},
},
{
"msisdn": "1449435XXXXX",
"iccid": "89864335XXXXXXXXX",
"imsi": "46XXXXXXXXX",
"result": {
"last_lon": "12.67",
"last_lat": "134.677",
"last_time": "2023-12-31 10:37:56"
},
}
],
"msg": "查询成功",
"code": 200
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/batch/card/last_locate/result/?_sign=23a545cbeaa56f1f81587a18783b57fd&task_id=86573
响应
{
"data": [
{
"msisdn": "14402619xxxxx",
"iccid": "89864335XXXXXXXXX",
"imsi": "46XXXXXXXXX",
"result": {
"last_lon": "12.67",
"last_lat": "134.677",
"last_time": "2023-12-31 10:37:56"
},
},
{
"msisdn": "14402619xxxxx",
"iccid": "89864335XXXXXXXXX",
"imsi": "46XXXXXXXXX",
"result": {
"last_lon": "12.67",
"last_lat": "134.677",
"last_time": "2023-12-31 10:37:56"
},
}
],
"msg": "查询成功",
"code": 200
}
实名认证状态查询(物联网卡)
接口说明
根据物联卡号(msisdn/iccid/imsi),返回实名认证状态,目前只支持移动语音卡
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/realname_status/?_sign={SIGN}
调用方式
HTTP GET
频率限制:5次/分钟
HTTP请求
卡号在URL中提现 <msisdn|iccid|imsi>
HTTP响应
Content-Type:application/json
成功
{
"data": {
"status": 1,
"msg": "已经激活",
"startdate": "20190114150543"
}
"code": 200,
}
参数
| 参数名称 | 类型 | 说明 |
|---|---|---|
status |
int |
1:已经激活,0:未激活 |
startdate |
string |
激活时间 格式-yyyymmddhhMMss |
msg |
string |
状态说明 |
失败
{
"msg": "提示信息",
"code": 522
}
示例
请求
curl -X POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10648XXXX0306/realname_status/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"data": {
"status": 0,
"msg": "已经激活",
"startdate": "20190114150543"
}
"code": 200,
}
本月到期卡详情查询
接口说明
查询当前计费月(非自然月)到期卡数据
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/batch/card/expiry_date/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数:
无
HTTP响应
Content-Type:application/json
成功
{
"code": 200,
"msg": "查询成功",
"data": {
"page": 1,
"per_page": 2000,
"num_pages": 1,
"rows": [
{
"iccid": "898xxxx128",
"msisdn": "144xxxx6128",
"imsi": "460xxxx6128",
"expiry_date": "到期日期"
}
]
}
}
失败
{
"msg": "提示信息",
"code": 400
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/expiry_date/data/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"code": 200,
"msg": "查询成功",
"data": {
"page": 1,
"per_page": 2000,
"num_pages": 1,
"rows": [
{
"iccid": "898xxxx128",
"msisdn": "144xxxx6128",
"imsi": "460xxxx6128",
"expiry_date": "2021-09-30"
}
]
}
}
人脸身份信息校验接口
用于客户对个人用户的身份信息校验
调用方式
HTTP POST
HTTP请求
Content-Type: multipart/form-data
请求地址:
http://ec.upiot.net/api/v2/{API_KEY}/user/realname/?_sign={SIGN}
参数:
| 参数 | 说明 | 类型 | 是否可为空 |
|---|---|---|---|
name |
用户真实姓名 |
string |
否 |
id_number |
用户身份证号码 |
string |
否 |
front_photo |
用户脸部正面照 |
图片文件,格式: .jpg 等windows系统可识别照片格式 |
否 |
HTTP响应
校验成功示例:
{
"code": 200,
"msg": "身份证号与姓名匹配,照片系统判断为同一人"
}
校验失败示例:
{
"code": 500,
"msg": "上传相片质量校验不合格,请重新上传"
}
获取物联网卡H5实名链接
调用方式
HTTP GET
HTTP请求
Content-Type:application/json
请求地址:
http://ec.upiot.net/api/v2/{API_KEY}/realname/url/<msisdn|iccid|imsi>/?_sign={SIGN}
参数:
| 参数名称 | 类型 | 说明 |
|---|---|---|
url_type |
int |
认证 URL 类型, url_type=1: 互联网标准视频认证; url_type=2: 微信小程序视频认证;默认为1 |
HTTP响应
{
"code": 200,
"data": {
"url": "http://xxxx"
},
"msg": "ok"
}
物联卡语音功能开停
接口说明
根据物联卡号(msisdn/iccid/imsi),和操作代码,控制物联卡语音功能开停,返回此次操作的任务ID
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/voice/control/?_sign={SIGN}
调用方式
HTTP POST
频率限制:70次/分钟
HTTP请求
Content-Type:application/json
| 字段 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
op_list |
List |
否 |
操作列表 |
op_list."MSISDN/ICCID/IMSI" |
String |
否 |
卡号 |
op_list."语音功能开关操作请求" |
int |
否 |
操作,0:打开 1:关闭 |
{
"op_list": [
{
"MSISDN/ICCID/IMSI": "1064806220503",
"语音功能开关操作请求": 0
},
{
"MSISDN/ICCID/IMSI": "1064806220504",
"语音功能开关操作请求": 1
}
]
}
HTTP响应
Content-Type:application/json
提交成功
{
"code": 200,
"msg": "ok",
"data": {
"task_id": 300379
}
}
说明: task_id 可以根据 物联卡语音功能开停结果查询 接口查询任务执行结果信息
示例
请求
curl -X POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/voice/control/?_sign=c28270f9eb6a22d3563800e7af461a4b -d '{"op_list": [{"MSISDN/ICCID/IMSI": "1064806220503", "语音功能开关操作请求": 0}, {"MSISDN/ICCID/IMSI": "1064806220504", "语音功能开关操作请求": 1}]}'
物联卡语音功能开停结果查询
接口说明
根据任务ID查询此次任务的操作结果
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/voice/control/query/?_sign={SIGN}
调用方式
HTTP GET
频率限制:70次/分钟
HTTP请求
参数
| 字段 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
task_id |
String |
否 |
物联卡语音功能开停操作返回的任务id |
HTTP响应
Content-Type:application/json
{
"code": 200,
"msg": "查询成功",
"data": [
{
"msisdn": "1064806220503",
"iccid": "898602B0101550020072",
"imsi": "460040062210075",
"action": 0,
"result": "操作成功"
},
{
"msisdn": "MSISDN",
"iccid": "ICCID",
"imsi": "IMSI",
"action":操作代码,
"result": "操作结果信息"
}
]
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/voice/control/query/?task_id=300379&_sign=c28270f9eb6a22d3563800e7af461a4b
机卡分离停机情况单卡查询接口
接口说明
根据物联卡号(msisdn/iccid/imsi),返回机卡分离停机情况,目前只支持部分中国移动和部分中国电信的卡
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/stop_reason/?_sign={SIGN}
调用方式
HTTP GET
频率限制:60次/分钟
HTTP请求
卡号在URL中体现 <msisdn|iccid|imsi>
HTTP响应
Content-Type:application/json
成功
是机卡分离停机:
{
"code": 200,
"msg": "是" // 已断网
}
不是机卡分离停机:
{
"code": 200,
"msg": "否" // 未断网
}
正在查询:
{
"code": 300,
"msg": "正在查询..."
}
参数
| 参数名称 | 类型 | 说明 |
|---|---|---|
code |
int |
状态码 |
msg |
string |
查询结果说明 |
失败
查询失败:
{
"code": 200,
"msg": "查询失败" // 网络查询失败
}
非我司卡或销户卡:
{
"code": 200,
"msg": "卡信息错误"
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10648XXXX0306/stop_reason/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"code": 200,
"msg": "是"
}
产品变更
接口说明
产品变更,一次最多可查询50张卡
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/product_change/?_sign={SIGN}
调用方式
HTTP POST
频率限制:20次/分钟
HTTP请求
参数
| 名称 | 类型 | 说明 | 是否可为空 |
|---|---|---|---|
cards_no |
List |
多个卡号(支持msisdn、iccid、imsi),最多50个卡号 |
不可为空 |
new_product |
int |
新产品流量(MB) 仅支持枚举值:30、100、200、300、500、1024、2048、4096 |
不可为空 |
HTTP响应
Content-Type: application/json
提交成功
{
"data": 产品变更工单单号
"msg": "任务提交成功,请稍后查询结果",
"code": 200
}
提交失败
{
"data": "",
"msg": "每次最多查询50张卡",
"code": 900
}
示例
请求
curl POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/product_change/?_sign=23a545cbeaa56f1f81587a18783b57fd -d '{"cards_no": ["1440261956748", "1440261956749", "1440261956750"], "new_product": 500}'
响应
提交成功
{
"data": "CW2024052311361716431808e4e4b1",
"msg": "任务提交成功,请稍后查询结果",
"code": 200,
}
提交失败
{
"data": "",
"msg": "每次最多查询50张卡",
"code": 900,
}
产品变更结果查询
接口说明
产品变更任务执行结果查询
此接口不向子客户开放。
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/product_change_result/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
work_no |
string |
否 |
产品变更返回的产品变更工单号 |
HTTP响应
Content-Type: application/json
{
"data": [
{
"work_no": "产品变更工单单号",
"status": "产品变更工单状态",
"card_no": "客户提交卡号",
"msisdn": "MSISDN",
"iccid": "ICCID",
"org_product": "原产品名称",
"new_product": "新产品名称",
"result": "检查结果",
"order_no": "变更订单号",
},
{
"work_no": "CW2024052311361716431808e4e4b1",
"status": "已完成",
"card_no": "1440261956748",
"msisdn": "1440261956748",
"iccid": "898614402619567483",
"org_product": "移动网络48个月30M/月",
"new_product": "移动网络48个月500M/月",
"result": "检查通过",
"order_no": "SOFT45295720001"
}
],
"msg": "查询成功",
"code": 200
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/product_change_result/?_sign=23a545cbeaa56f1f81587a18783b57fd&work_no=CW2024052311361716431808e4e4b1
响应
{
"data": [
{
"work_no": "CW2024052311361716431808e4e4b1",
"status": "已完成",
"card_no": "1440261956748",
"msisdn": "1440261956748",
"iccid": "898614402619567483",
"org_product": "移动网络48个月30M/月",
"new_product": "移动网络48个月500M/月",
"result": "检查通过",
"order_no": "SOFT45295720001"
},
{
"work_no": "CW2024052311361716431808e4e4b1",
"status": "已完成",
"card_no": "1440261956749",
"msisdn": "1440261956749",
"iccid": "898614402619567493",
"org_product": "移动网络48个月30M/月",
"new_product": "移动网络48个月500M/月",
"result": "检查通过",
"order_no": "SOFT45295720001"
}
],
"msg": "查询成功",
"code": 200
}
卡状态变更
接口说明
1、支持测试期转库存期的运营商:中国移动、中国联通和中国电信
2、支持库存期转正使用的运营商:中国移动、中国联通和中国电信
3、支持测试期转正使用的运营商:中国移动、中国联通、中国电信和 C
4、一次最多可查询50张卡,同一张卡3分钟内不允许重复调用该接口
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card_status_change/?_sign={SIGN}
调用方式
HTTP POST
频率限制:20次/分钟
HTTP请求
参数
| 名称 | 类型 | 说明 | 是否可为空 |
|---|---|---|---|
cards_no |
List |
多个卡号(支持msisdn、iccid、imsi),最多50个卡号 |
不可为空 |
oper_type |
int |
0:测试期转库存期;1:库存期转正使用;2:测试期转正使用 |
不可为空 |
HTTP响应
Content-Type: application/json
提交成功
{
"data": 任务ID
"msg": "任务提交成功,请稍后查询结果",
"code": 200
}
提交失败
{
"data": {
"card_error": {
"error_msg": "卡号非我司卡或已销户",
"cards_no": ["卡号1", "卡号2"],
},
"activation_error": {
"error_msg": "卡号不存在库存期业务,不支持卡状态变更操作",
"cards_no": ["卡号3", "卡号4"],
},
"card_status_error": {
"error_msg": "卡号卡状态不为测试期|库存期,无法进行测试期|库存期转库存期|正使用操作",
"cards_no": ["卡号5", "卡号6"],
},
"carrier_error": {
"error_msg": "卡号运营商不支持,无法进行测试期转正使用操作",
"cards_no": ["卡号7", "卡号8"],
},
},
"msg": "卡号检查不通过",
"code": 900
}
示例
请求
curl POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card_status_change/?_sign=23a545cbeaa56f1f81587a18783b57fd -d '{"cards_no": ["1440261956748", "1440261956749", "1440261956750", "1440261956751"]}'
响应
提交成功
{
"data": 86573,
"msg": "任务提交成功,请稍后查询结果",
"code": 200,
}
提交失败
{
"data": {
"card_error": {
"error_msg": "卡号非我司卡或已销户",
"cards_no": ["1440261956748"],
},
"activation_error": {
"error_msg": "卡号不存在库存期业务,不支持卡状态变更操作",
"cards_no": ["1440261956749"],
},
"card_status_error": {
"error_msg": "卡号卡状态不为测试期|库存期,无法进行测试期转库存期|正使用操作",
"cards_no": ["1440261956750"],
},
"carrier_error": {
"error_msg": "卡号运营商不支持,无法进行测试期转正使用操作",
"cards_no": ["1440261956751"],
}
},
"msg": "卡号检查不通过",
"code": 900,
}
卡状态变更结果查询
接口说明
卡状态变更任务执行结果查询
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card_status_change_result/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
task_id |
int |
否 |
卡状态变更返回的批量任务ID |
HTTP响应
Content-Type: application/json
{
"data": [
{
"msisdn": MSISDN,
"iccid": ICCID,
"imsi": IMSI,
"oper_type": 操作代码,
"result": "卡状态变更结果说明",
},
{
"msisdn": "1449435XXXXX",
"iccid": "89864335XXXXXXXXX",
"imsi": "46XXXXXXXXX",
"oper_type": 0,
"result": "状态变更成功",
}
],
"msg": "查询成功",
"code": 200
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card_status_change_result/?_sign=23a545cbeaa56f1f81587a18783b57fd&task_id=86573
响应
{
"data": [
{
"msisdn": "14402619xxxxx",
"iccid": "89864335XXXXXXXXX",
"imsi": "46XXXXXXXXX",
"oper_type": 0,
"result": "状态变更成功",
},
{
"msisdn": "14402619xxxxx",
"iccid": "89864335XXXXXXXXX",
"imsi": "46XXXXXXXXX",
"oper_type": 0,
"result": "状态变更失败",
}
],
"msg": "查询成功",
"code": 200
}
物联网卡充值记录查询
接口说明
物联网卡充值记录查询
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/charge_records/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数
| 名称 | 类型 | 说明 | 是否可为空 |
|---|---|---|---|
month |
int |
需要查询的充值月份,填写格式:YYYYMM,样例:202404 |
不可为空 |
HTTP响应
Content-Type: application/json
提交成功
{
"code": 200,
"msg": "ok",
"data": {
"task_id": 任务ID
}
}
示例
请求
curl GET http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/charge_records/?_sign=23a545cbeaa56f1f81587a18783b57fd
响应
提交成功
{
"code": 200,
"msg": "ok",
"data": {
"task_id": 304354
}
}
物联网卡充值记录查询结果
接口说明
物联网卡充值记录任务执行结果查询
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/charge_records_result/?_sign={SIGN}
调用方式
HTTP GET
频率限制:20次/分钟
HTTP请求
参数
| 参数 | 类型 | 是否可为空 | 说明 |
|---|---|---|---|
task_id |
int |
否 |
物联网卡充值记录接口返回的批量任务ID |
HTTP响应
Content-Type: application/json
{
"code": 200,
"msg": "查询成功",
"data": [
{
"MSISDN": "852196331099187",
"ICCID": "89852000263310991874",
"充值单号": "P202405141315453be1386a",
"外部订单号": "None",
"创建时间": "2024-05-14 05:15:53.369000",
"充值产品": "6m",
"充值月数": "6",
"充值价格": "0",
"原平台失效日期": "2024-10-31",
"新平台失效日期": "2025-04-30",
"原平台流量余额": "100",
"新平台流量余额": "100",
"充值产品类型": "非累计卡延长失效日期",
"充值方式": "平台充值"
}
]
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/charge_records_result/?_sign=23a545cbeaa56f1f81587a18783b57fd&task_id=86573
响应
{
"code": 200,
"msg": "查询成功",
"data": [
{
"MSISDN": "852196331099187",
"ICCID": "89852000263310991874",
"充值单号": "P202405141315453be1386a",
"外部订单号": "None",
"创建时间": "2024-05-14 05:15:53.369000",
"充值产品": "6m",
"充值月数": "6",
"充值价格": "0",
"原平台失效日期": "2024-10-31",
"新平台失效日期": "2025-04-30",
"原平台流量余额": "100",
"新平台流量余额": "100",
"充值产品类型": "非累计卡延长失效日期",
"充值方式": "平台充值"
}
]
}
本月销户物联网卡批量提交
接口说明
该功能暂仅适用于运营商:M的物联网卡,其他运营商的卡暂不支持。
频率限制:20次/分钟
每次最多100张卡
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/batch/card/destroy/?_sign={SIGN}
调用方式
HTTP POST
请求格式:
Content-Type: application/json
HTTP请求
参数:
| 名称 | 类型 | 说明 | 是否可为空 |
|---|---|---|---|
cards_no |
List |
支持msisdn、iccid、imsi 三种卡号,最多100个卡号 |
否 |
HTTP响应
Content-Type: application/json
{
"data": [
{
"card_no": "提交卡号",
"status": "单卡处理结果",
"msg": "处理详情"
},
{
"card_no": "1449435XXXXX",
"status": false,
"msg": "该卡不存在"
}
],
"msg": "提交成功",
"code": 200
}
或
{
"code": 500,
"msg": "已超出本月可提交销户的时间,请线下与客户经理沟通"
}
示例
请求
curl POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/batch/card/destroy/?_sign=23a545cbeaa56f1f81587a18783b57fd -d '{"card_nos": ["1440261956748", "1440261956749"]}'
响应
{
"data": [
{
"card_no": "1449435XXXXX",
"status": false,
"msg": "该卡不存在"
},
{
"card_no": "1449436XXXXX",
"status": true,
"msg": "已提交成功,预计在月末进行销户处理"
}
],
"msg": "提交成功",
"code": 200
}
物联卡查询imei绑定状态
接口说明
该功能暂仅适用于运营商:M的物联网卡,其他运营商的卡暂不支持
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/imei/lock/status/?_sign={SIGN}
调用方式
HTTP GET
频率限制:30次/分钟
HTTP请求
参数:
物联卡号在接口地址中体现, <msisdn|iccid|imsi>
HTTP响应
Content-Type: application/json
绑定状态说明:
bind_not_support: '不支持绑定'
bind_progress: '正在绑定,请稍后重试'
bind_support: '支持绑定'
bind_support_and_lock_card: '支持绑定,且已触发锁卡'
bind_function_disabled: '绑定功能已禁用'
unknown_imei: '未识别IMEI号'
{
"data": {
"status": "绑定状态",
"imei": 绑定imei",
"triggered": "是否触发锁卡"
},
"msg": "ok",
"code": 200,
}
或
{
"code": 500,
"msg": "该卡不存在"
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10648XXXX3929/imei/lock/status/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"data": {
"status": "绑定状态",
"imei": 绑定imei",
"triggered": "是否触发锁卡"
},
"msg": "ok",
"code": 200,
}
物联卡imei绑定配置管理
接口说明
该功能暂仅适用于运营商:M的物联网卡,其他运营商的卡暂不支持。
频率限制:30次/分钟
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/imei/setup/?_sign={SIGN}
调用方式
HTTP POST
请求格式:
Content-Type: application/json
HTTP请求
参数:
| 名称 | 类型 | 说明 | 是否可为空 |
|---|---|---|---|
imei |
string |
15位imei号 |
action_type为disable时,可不填 |
action_type |
string |
操作类型:disable表示解绑;enable表示配置 |
否 |
HTTP响应
Content-Type: application/json
{
"msg": "请求已完成",
"code": 200
}
或
{
"code": 500,
"msg": "提交失败,请稍后重试"
}
示例
请求
curl POST http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/1449264xxxx/imei/setup/?_sign=23a545cbeaa56f1f81587a18783b57fd -d '{"imei": "", "action_type": "disabled"}'
响应
{
"msg": "请求已完成",
"code": 200
}
锁卡触发后短期解锁
接口说明
该功能暂仅适用于运营商:M的物联网卡,其他运营商的卡暂不支持
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/unlock/?_sign={SIGN}
调用方式
HTTP GET
频率限制:30次/分钟
HTTP请求
参数:
物联卡号在接口地址中体现, <msisdn|iccid|imsi>
HTTP响应
Content-Type: application/json
{
"msg": "请求已完成",
"code": 200
}
或
{
"msg": "提交失败,请稍后重试",
"code": 500
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10648XXXX3929/unlock/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"msg": "请求已完成",
"code": 200
}
实时查询imei号
接口说明
该功能暂仅适用于运营商:M的物联网卡,其他运营商的卡暂不支持
接口地址
http://ec.upiot.net/api/v2/{API_KEY}/card/<msisdn|iccid|imsi>/imei/device/?_sign={SIGN}
调用方式
HTTP GET
频率限制:30次/分钟
HTTP请求
参数:
物联卡号在接口地址中体现, <msisdn|iccid|imsi>
HTTP响应
Content-Type: application/json
{
"data": {
"imei": "绑定imei",
"device": "设备名称"
},
"msg": "ok",
"code": 200
}
或
{
"msg": "系统报错",
"code": 500
}
示例
请求
curl http://ec.upiot.net/api/v2/9516a58d24cd6b78362f27c8ab4292b0151b2027/card/10648XXXX3929/imei/device/?_sign=c28270f9eb6a22d3563800e7af461a4b
响应
{
"data": {
"imei": "868327073452754",
"device": "Communication Technology"
},
"msg": "ok",
"code": 200
}
物联卡回调接口
回调接口用于平台主动向用户推送一些物联卡相关的信息变动。用户需要提供接收回调的服务,并将服务的URL提供给平台
短信下行回调
用于通知用户短信的发送状态,是否成功送达至终端设备。
调用方式
HTTP POST
HTTP请求
Content-Type: application/json
{
"code": 200表示送达成功,其他表示送达失败,
"sms_id": "该短信在平台的唯一标识",
"type": "report",
"msisdn": "物联卡号"
"msg": "附加说明",
"content": "短信内容"
}
HTTP响应
Content-Type: text/plain
回调接收成功请回复 success 七个字符,否则视为回调失败。
短信上行回调
调用方式
HTTP POST
HTTP请求
Content-Type: application/json
{
"sms_id": "该短信在平台的唯一标识",
"type": "inbox",
"msisdn": "物联卡号",
"content": "短信内容"
}
HTTP响应
回调接收成功请回复 success 七个字符,否则视为回调失败。
API接口停复机操作回调
仅用于API接口操作停复机后状态回调, 回调5s内未收到回复则视为回调失败, 回调失败后每隔5s会回调一次, 最多回调3次。
调用方式
HTTP POST
HTTP请求
Content-Type: application/json
{
"msisdn": "卡号",
"callback_no": "客户传入的操作单号",
"account_status": "当前卡状态:正使用、停机...",
"code": 200,
"msg": "操作结果信息"
}
当 code 等于200时表示操作成功
HTTP响应
Content-Type: text/plain
回调接收成功请回复 success 七个小写字符,未回复正确字符视为回调失败,重复回调3次
单卡流量预警回调
仅用于单卡流量预警回调, 回调10s内未收到回复则视为回调失败, 回调失败后继续回调, 最多回调3次。
调用方式
HTTP POST
HTTP请求
Content-Type: application/json
[
{
"MSISDN": "MSISDN",
"ICCID": "ICCID",
"当月已用流量(M)": "41.919",
"套餐(M)": "30",
"使用比例(%)": "139.73",
"预警设置值(%)": "100",
"运营商": "移动",
"子客户名称": "",
"子客户用户名": "",
"备注": "",
"卡状态": "正使用"
}
]
HTTP响应
Content-Type: text/plain
回调接收成功请回复 success 七个小写字符,未回复正确字符视为回调失败,重复回调3次
流量池流量预警回调
仅用于流量池流量预警回调, 回调10s内未收到回复则视为回调失败, 回调失败后继续回调, 最多回调3次。
调用方式
HTTP POST
HTTP请求
Content-Type: application/json
[
{
"使用比例(%)": "63.95",
"已用流量(M)": "306731.458",
"流量池大小(M)": "479610",
"计费组名称": "计费组名称",
"设置预警值(%)": "50",
"运营商": "移动"
}
]
HTTP响应
Content-Type: text/plain
回调接收成功请回复 success 七个小写字符,未回复正确字符视为回调失败,重复回调3次
预警规则回调
仅用于预警规则回调, 回调10s内未收到回复则视为回调失败, 回调失败后继续回调, 最多回调3次。
调用方式
HTTP POST
HTTP请求
Content-Type: application/json
{
"预警记录ID": 1,
"预警规则名称": "name",
"预警对象类型": "流量池流量"
}
HTTP响应
Content-Type: text/plain
回调接收成功请回复 success 七个小写字符,未回复正确字符视为回调失败,重复回调3次
状态码对照表
卡状态编码
| 代码 | 状态 |
|---|---|
00 |
正使用 |
10 |
测试期 |
02 |
停机 |
03 |
预销号 |
04 |
销号 |
11 |
沉默期 |
12 |
停机保号 |
99 |
未知 |
15 |
库存期 |
运营商编码
| 代码 | 名称 |
|---|---|
0 |
中国移动 |
1 |
中国联通 |
2 |
中国电信 |
接口状态码
| 状态码 | 信息 |
|---|---|
200 |
请求成功 |
301 |
无用户名或密码 |
302 |
登录失败 |
303 |
用户已禁用 |
304 |
来自非授权的IP访问 |
401 |
HTTP请求中无登录token |
402 |
HTTP请求中的登录token错误 |
403 |
HTTP请求中的登录token过期 |
405 |
API_KEY不合法 |
406 |
_sign参数错误 |
501 |
JSON消息格式不正确 |
502 |
物联卡不存在或未启用 |
503 |
卡号列表为空 |
504 |
短信内容为空 |
505 |
访问频率限制 |
506 |
接口功能未开启 |
507 |
无效的计费组 |
508 |
短信内容超过160个字符 |
509 |
基站定位失败 |
510 |
停复机类型不存在 |
511 |
不支持该运营商 |
512 |
查询数量超过最大值 |
513 |
卡号不存在或已禁用 |
514 |
仅支持查询近七日流量 |
515 |
未配置充值产品列表 |
516 |
缺少参数 |
517 |
请求参数错误 |
518 |
暂无数据(一般是暂时没有相关统计数据,请稍后再试) |
519 |
查询月份错误(格式:201807) |
520 |
只支持查询最近3个月的数据 |
521 |
该卡不允许充值 |
522 |
定位失败 |
523 |
客户余额未配置 |
524 |
客户余额不足 |
525 |
非桔猫卡不允许操作 |
526 |
桔猫卡运营商错误 |
527 |
桔猫卡子卡有操作未完成,请稍后再试 |
529 |
充值失败,请稍后再试 |
530 |
产品价格错误,请查看自定义产品信息 |
531 |
物联卡已归档,不支持查询 |
532 |
无短信签名权限,不支持发送带签名短信 |
533 |
产品信息错误:该产品不支持立即生效, 无法充值,请联系客服 |
534 |
有停复机操作在进行中 |
535 |
提交停复机接口失败 |
900 |
其他错误 |