接口目录
基础说明
接口列表
下面的接口详情默认折叠,点击接口标题可展开完整请求、响应和字段说明。
本文档说明当前开放接口。除心跳接口和“获取移动 Token”外,OpenAPI 请求都需要携带通用签名参数。
“获取移动 Token”是本页第 9 个独立开放接口,使用渠道专属 key 鉴权且不需要签名;也可参阅独立的获取移动 Token菜单。二次认证信息通过单一接口 /api/v1/secondary-auth 获取,请求参数 key 使用渠道配置的 channel_key,不需要签名;请参阅获取二次认证信息。
通用请求参数
GET 接口使用 Query String 传参。POST 接口支持 application/json 和 application/x-www-form-urlencoded。
通用响应结构
成功响应:
{'{'}
"code": "OK",
"msg": "ok",
"data": {'{'}{'}'},
"ok": true
{'}'}
失败响应:
{'{'}
"code": "InvalidParams",
"msg": "提交的参数不符合要求",
"ok": false
{'}'}
常见错误码:
Forbidden 场景的报错信息分开返回:
如果同一请求同时命中池中池欠费和账单提取配置封禁,系统先执行池中池的代理级检查,因此返回池中池欠费提示。
池中池 OpenAPI 规则
池中池不改变接口路径、签名方式和通用参数,但会影响卡板流量口径、停复机校验和所属客户的 OpenAPI 可用状态。
池中池欠费拦截示例:
{'{'}
"code": "Forbidden",
"msg": "池中池已欠费(余额低于保证金),OpenAPI 已暂停,请先充值或补足余额",
"ok": false
{'}'}
账单提取配置 OpenAPI 规则
账单提取配置的“禁止调用接口”按配置绑定对象生效,不会封禁同一客户/代理名下的全部 OpenAPI。
卡板被拦截时:
{'{'}
"code": "Forbidden",
"msg": "账单提取配置已禁止该卡板调用接口",
"ok": false
{'}'}
设备被拦截时:
{'{'}
"code": "Forbidden",
"msg": "账单提取配置已禁止该设备调用接口",
"ok": false
{'}'}
1. 心跳检测 GET /api/v1/heartbeat
1. 心跳检测
检测服务是否正常运行,返回服务器当前时间。
请求信息
请求示例
GET /api/v1/heartbeat?access_key=ak_test123×tamp=1730619000&nonce=test123&signature=abc123def456
Host: your-domain.com
响应示例
2026-05-03T16:30:00+08:00
2. 获取可对接套餐列表 GET /api/v1/packages
2. 获取可对接套餐列表
查询当前 API 账号可对接的套餐列表。
请求信息
业务参数
请求示例
GET /api/v1/packages?package_code=pkg_d4k9...&access_key=ak_test123×tamp=1730619000&nonce=test123&signature=abc123def456
Host: your-domain.com
响应示例
{'{'}
"code": "OK",
"msg": "ok",
"data": [
{'{'}
"id": 100,
"upstream_package_code": "PKG001",
"package_code": "pkg_d4k9...",
"name": "联通月包10G",
"description": "月租套餐",
"launched": true,
"operators": ["CUCC"],
"weight": 100,
"price": 19.9,
"cost": 15,
"low_price": 0,
"high_price": 99,
"total_flow": 10240,
"can_buy_next_month": true,
"type": "0",
"buy_limit": 0,
"day": 2,
"cycle": 1,
"unlimited": false,
"daytime": 1,
"add_time": 2,
"flow_slicing_strategy": 0,
"flow_slicing_count": 0,
"series_name": "联通标准系列"
{'}'}
],
"ok": true
{'}'}
说明
- 仅返回当前 API 账号有权限对接的已上架套餐。
total_flow 返回展示流量。
series_name 只返回系列名称,不返回完整系列配置。
package_code 为空时返回全部可对接套餐。
data 数组字段说明
operators 字段取值说明
补充示例
day=2、cycle=1:表示 1 个月套餐。
day=1、cycle=30:表示 30 天套餐。
day=1、cycle=30、days_strategy=2:按生效开始时间所在月份的实际天数计算。
day=1、cycle=60、days_strategy=2:按连续 2 个自然月的实际天数计算。
can_buy_next_month=true:下游下单时可以传 strategy=2 表示次月生效。
buy_limit=3:表示同一个卡板或设备最多购买 3 次该套餐。
3. 卡板信息查询 GET /api/v1/info
3. 卡板信息查询
查询指定卡板的流量、余额、状态和实名状态。
请求信息
业务参数
请求示例
GET /api/v1/info?card_no=CARD123456789&access_key=ak_test123×tamp=1730619000&nonce=test123&signature=abc123def456
Host: your-domain.com
响应示例
{'{'}
"code": "OK",
"msg": "ok",
"data": {'{'}
"card_no": "CARD123456789",
"total_flow": 10240,
"used_flow": 5120,
"status": 2,
"official_real_name_verified": true,
"balance": "100.50",
"delete_on": "2026-06-01T00:00:00+08:00"
{'}'},
"ok": true
{'}'}
data 字段说明
池中池说明
- 如果
card_no 命中启用中的池中池,used_flow 直接返回运营商上游数据中的已用流量。
total_flow 仍表示本地可用总流量;池中池卡板可能没有单卡套餐订单,delete_on 可能为空。
4. 获取卡板实名链接 GET /api/v1/real-name-url
4. 获取卡板实名链接
获取指定卡板的官方实名链接。
请求信息
业务参数
请求示例
GET /api/v1/real-name-url?card_no=CARD123456789&access_key=ak_test123×tamp=1730619000&nonce=test123&signature=abc123def456
Host: your-domain.com
成功响应
{'{'}
"code": "OK",
"msg": "ok",
"data": "https://example.com/real-name?card_no=CARD123456789",
"ok": true
{'}'}
业务规则
5. 刷新卡板流量 POST /api/v1/refresh-flow
5. 刷新卡板流量
主动刷新指定卡板的最新流量信息,成功后仅返回成功状态。
请求信息
业务参数
请求示例
{'{'}
"card_no": "CARD123456789",
"access_key": "ak_test123",
"timestamp": "1730619000",
"nonce": "test123",
"signature": "abc123def456"
{'}'}
成功响应
{'{'}
"code": "OK",
"msg": "ok",
"ok": true
{'}'}
6. 卡板复机 POST /api/v1/start
6. 卡板复机
对指定卡板执行复机操作。
请求信息
业务参数
权限要求
API 账号必须具有停复机权限。
池中池说明
- 池中池欠费拦截先于复机业务逻辑执行;如果返回
Forbidden,需要先充值或补足池子余额。
- 欠费拦截通过后,池中池卡板可以显式复机;复机不会因为没有单卡套餐订单而被阻断。
成功响应
{'{'}
"code": "OK",
"msg": "ok",
"data": true,
"ok": true
{'}'}
7. 卡板停机 POST /api/v1/stop
7. 卡板停机
对指定卡板执行停机操作。
请求信息
业务参数
权限要求
API 账号必须具有停复机权限。
池中池说明
- 池中池欠费拦截先于停机业务逻辑执行;如果返回
Forbidden,需要先充值或补足池子余额。
- 欠费拦截通过后,池中池卡板可以显式停机;该操作只执行上游停机,不参与池中池余额扣费。
成功响应
{'{'}
"code": "OK",
"msg": "ok",
"data": true,
"ok": true
{'}'}
8. 卡板套餐订购 POST /api/v1/orders
8. 卡板套餐订购
为指定卡板订购套餐。
请求信息
业务参数
请求示例
{'{'}
"card_no": "CARD123456789",
"package_code": "pkg_d4k9...",
"strategy": 1,
"access_key": "ak_test123",
"timestamp": "1730619000",
"nonce": "test123",
"signature": "abc123def456"
{'}'}
成功响应
{'{'}
"code": "OK",
"msg": "ok",
"data": {'{'}
"order_no": "ORD202605030001"
{'}'},
"ok": true
{'}'}
业务规则
- 当前使用余额支付。
- 余额不足、套餐不可用、卡板状态不满足时会返回失败。
strategy=1 表示本月生效,strategy=2 表示次月生效。
- 池中池余额扣费由日扣费任务和月结流程处理,不通过本接口扣池子余额。
- 本接口创建普通卡板套餐订单;池中池卡板没有单卡订单也不会影响池中池日扣费和月结。
9. 获取移动 Token POST /api/v1/token
9. 获取移动 Token
根据渠道 ID 获取移动下游实时 token。
请求信息
业务参数
请求示例
{'{'}
"key": "8d12...渠道密钥...a91f"
{'}'}
成功响应
{'{'}
"code": "OK",
"msg": "ok",
"data": {'{'}
"token": "3d7d94df3cf1e7942efe408ee141cca6"
{'}'},
"ok": true
{'}'}
10. 设备信息查询 GET /api/v1/device/info
10. 设备信息查询
查询指定设备信息,包括设备基础信息、流量信息和卡槽信息。
请求信息
业务参数
请求示例
GET /api/v1/device/info?device_no=DEVICE123456789&access_key=ak_test123×tamp=1730619000&nonce=test123&signature=abc123def456
Host: your-domain.com
响应示例
{'{'}
"code": "OK",
"msg": "ok",
"data": {'{'}
"device_no": "DEVICE123456789",
"balance": "50.00",
"signal": 4,
"electricity": 85,
"device_conn_num": 3,
"wifi_status": 1,
"hide_wifi": false,
"wifi_name": "TCZK-5G",
"used_flow": 1024.5,
"total_flow": 20480,
"delete_on": "2026-06-01T00:00:00+08:00",
"card_slots": [
{'{'}
"slot_code": "1",
"card_no": "8986001234567890123",
"official_real_name_verified": true,
"card_status": 2,
"is_main_slot": true,
"is_current_slot": true
{'}'}
]
{'}'},
"ok": true
{'}'}
data 字段说明
card_slots 字段说明
11. 获取设备实名链接 GET /api/v1/device/real-name-url
11. 获取设备实名链接
获取指定设备所有卡槽的官方实名链接列表。
请求信息
业务参数
请求示例
GET /api/v1/device/real-name-url?device_no=DEVICE123456789&access_key=ak_test123×tamp=1730619000&nonce=test123&signature=abc123def456
Host: your-domain.com
成功响应
{'{'}
"code": "OK",
"msg": "ok",
"data": [
{'{'}
"slot_code": "1",
"card_no": "8986001234567890123",
"official_real_name_verified": false,
"is_main_slot": true,
"is_current_slot": true,
"url": "https://example.com/real-name?device_no=DEVICE123456789&slot=1"
{'}'},
{'{'}
"slot_code": "2",
"card_no": "8986001234567890124",
"official_real_name_verified": true,
"is_main_slot": false,
"is_current_slot": false,
"url": ""
{'}'}
],
"ok": true
{'}'}
data 子字段说明
业务规则
说明
- 单网套餐只允许实名当前生效套餐对应运营商的卡槽;不再按主副卡槽固定限制。
- 如果卡槽配置为上游实名链接,系统会优先通过设备号获取上游设备实名链接;取不到时回退到卡板实名链接逻辑。
- 调用方只需要传
device_no,不需要传 slot_code。
12. 设备套餐订购 POST /api/v1/device/orders
12. 设备套餐订购
为指定设备订购套餐。
请求信息
业务参数
请求示例
{'{'}
"device_no": "DEVICE123456789",
"package_code": "pkg_d4k9...",
"strategy": 1,
"access_key": "ak_test123",
"timestamp": "1730619000",
"nonce": "test123",
"signature": "abc123def456"
{'}'}
成功响应
{'{'}
"code": "OK",
"msg": "ok",
"data": {'{'}
"order_no": "ORD202605030002"
{'}'},
"ok": true
{'}'}
业务规则
- 当前使用余额支付。
- 余额不足、套餐不可用、设备状态不满足时会返回失败。
strategy=1 表示本月生效,strategy=2 表示次月生效。
13. 设备操作指令 POST /api/v1/device/command
13. 设备操作指令
统一执行设备相关指令。
请求信息
基础业务参数
command 明细
请求示例:设备复机
{'{'}
"device_no": "DEVICE123456789",
"command": "restart",
"access_key": "ak_test123",
"timestamp": "1730619000",
"nonce": "test123",
"signature": "abc123def456"
{'}'}
请求示例:设备关机
{'{'}
"device_no": "DEVICE123456789",
"command": "shutdown_device",
"access_key": "ak_test123",
"timestamp": "1730619000",
"nonce": "test123",
"signature": "abc123def456"
{'}'}
请求示例:切网
{'{'}
"device_no": "DEVICE123456789",
"command": "switch_network",
"slot_code": "1",
"access_key": "ak_test123",
"timestamp": "1730619000",
"nonce": "test123",
"signature": "abc123def456"
{'}'}
请求示例:修改 WiFi
{'{'}
"device_no": "DEVICE123456789",
"command": "update_wifi",
"wifi_name": "TCZK-5G",
"wifi_password": "12345678",
"access_key": "ak_test123",
"timestamp": "1730619000",
"nonce": "test123",
"signature": "abc123def456"
{'}'}
成功响应
{'{'}
"code": "OK",
"msg": "ok",
"data": true,
"ok": true
{'}'}
业务规则
restart 是设备启用/复机,shutdown 是设备禁用/停机;restart_device 是设备重启,shutdown_device 是设备关机。
restart、shutdown 需要 API 账号具有停复机权限。
restart_device、shutdown_device、factory_reset、switch_network、set_wifi_visible、update_wifi 需要设备所属平台支持对应能力,不支持时会返回能力不支持错误。
switch_network 的 slot_code 必须存在于设备所属渠道的卡槽配置中。
- 当前生效套餐为单网套餐时,
switch_network 只允许切到该套餐对应的运营商卡槽。
set_wifi_visible 必须传 hidden。
update_wifi 必须同时传 wifi_name 和 wifi_password。
14. 查询代理余额 GET /api/v1/agent/balance
14. 查询代理余额
查询当前 OpenAPI 授权代理的账户余额。
请求信息
请求示例
GET /api/v1/agent/balance?access_key=ak_test123×tamp=1730619000&nonce=test123&signature=abc123def456
Host: your-domain.com
响应示例
{'{'}
"code": "OK",
"msg": "ok",
"data": {'{'}
"agent_id": 1,
"balance": 100.5
{'}'},
"ok": true
{'}'}
data 字段说明
说明
- 接口只返回当前
access_key 对应代理的余额,不支持传入代理 ID 查询其他代理。
- 返回余额为当前账户实时余额。
接口目录
基础说明
接口列表
下面的接口详情默认折叠,点击接口标题可展开完整请求、响应和字段说明。
本文档说明当前开放接口。除心跳接口和“获取移动 Token”外,OpenAPI 请求都需要携带通用签名参数。
“获取移动 Token”是本页第 9 个独立开放接口,使用渠道专属
key鉴权且不需要签名;也可参阅独立的获取移动 Token菜单。二次认证信息通过单一接口/api/v1/secondary-auth获取,请求参数key使用渠道配置的channel_key,不需要签名;请参阅获取二次认证信息。通用请求参数
access_keyak_test123timestamp1730619000noncetest123signatureabc123def456GET 接口使用 Query String 传参。POST 接口支持
application/json和application/x-www-form-urlencoded。通用响应结构
成功响应:
{'{'} "code": "OK", "msg": "ok", "data": {'{'}{'}'}, "ok": true {'}'}失败响应:
{'{'} "code": "InvalidParams", "msg": "提交的参数不符合要求", "ok": false {'}'}常见错误码:
InvalidParamsBadRequestAlreadyVerifiedPermissionDeniedForbiddenmsg区分池中池欠费和账单提取配置封禁InternalErrorForbidden场景的报错信息分开返回:msg池中池已欠费(余额低于保证金),OpenAPI 已暂停,请先充值或补足余额账单提取配置已禁止该卡板调用接口账单提取配置已禁止该设备调用接口如果同一请求同时命中池中池欠费和账单提取配置封禁,系统先执行池中池的代理级检查,因此返回池中池欠费提示。
池中池 OpenAPI 规则
池中池不改变接口路径、签名方式和通用参数,但会影响卡板流量口径、停复机校验和所属客户的 OpenAPI 可用状态。
Forbidden。used_flow返回运营商上游数据中的已用流量;普通卡板返回本地统计的已用流量。池中池欠费拦截示例:
{'{'} "code": "Forbidden", "msg": "池中池已欠费(余额低于保证金),OpenAPI 已暂停,请先充值或补足余额", "ok": false {'}'}账单提取配置 OpenAPI 规则
账单提取配置的“禁止调用接口”按配置绑定对象生效,不会封禁同一客户/代理名下的全部 OpenAPI。
card_no或device_no的接口不受影响。卡板被拦截时:
{'{'} "code": "Forbidden", "msg": "账单提取配置已禁止该卡板调用接口", "ok": false {'}'}设备被拦截时:
{'{'} "code": "Forbidden", "msg": "账单提取配置已禁止该设备调用接口", "ok": false {'}'}1. 心跳检测
GET /api/v1/heartbeat1. 心跳检测
检测服务是否正常运行,返回服务器当前时间。
请求信息
GET/api/v1/heartbeat请求示例
响应示例
2. 获取可对接套餐列表
GET /api/v1/packages2. 获取可对接套餐列表
查询当前 API 账号可对接的套餐列表。
请求信息
GET/api/v1/packages业务参数
package_codepkg_d4k9...请求示例
响应示例
{'{'} "code": "OK", "msg": "ok", "data": [ {'{'} "id": 100, "upstream_package_code": "PKG001", "package_code": "pkg_d4k9...", "name": "联通月包10G", "description": "月租套餐", "launched": true, "operators": ["CUCC"], "weight": 100, "price": 19.9, "cost": 15, "low_price": 0, "high_price": 99, "total_flow": 10240, "can_buy_next_month": true, "type": "0", "buy_limit": 0, "day": 2, "cycle": 1, "unlimited": false, "daytime": 1, "add_time": 2, "flow_slicing_strategy": 0, "flow_slicing_count": 0, "series_name": "联通标准系列" {'}'} ], "ok": true {'}'}说明
total_flow返回展示流量。series_name只返回系列名称,不返回完整系列配置。package_code为空时返回全部可对接套餐。data 数组字段说明
idupstream_package_codepackage_codepackage_code。namedescriptionlaunchedtrue表示当前套餐可对接、可下单。operatorsweightpricecostlow_pricehigh_pricetotal_flowcan_buy_next_monthtrue表示下单时可传strategy=2。type"0"表示基础套餐,"1"表示加油包。buy_limit0一般表示不限制;大于0表示单个对象只能购买指定次数。day1=按天,2=按月,3=每月 26 号结算。cycleday一起理解。比如day=2且cycle=1表示 1 个月。days_strategy1=严格按cycle天,2=按当月实际天数。使用2时cycle必须是30的倍数。未返回或为0时按严格天数处理。unlimitedtrue表示无限流量,false表示非无限流量。daytime1=在结算日当天结束时失效,2=在结算日的订购时间点失效。add_time1=无限叠加时间,2=立即生效,3=前一个套餐失效。flow_slicing_strategy0=不切片,1=按结算日自动切片,2=按平均值自动切片。flow_slicing_countflow_slicing_strategy=2时有实际意义;其它情况通常为0。series_nameoperators 字段取值说明
CMCCCUCCCTCCCBNC补充示例
day=2、cycle=1:表示 1 个月套餐。day=1、cycle=30:表示 30 天套餐。day=1、cycle=30、days_strategy=2:按生效开始时间所在月份的实际天数计算。day=1、cycle=60、days_strategy=2:按连续 2 个自然月的实际天数计算。can_buy_next_month=true:下游下单时可以传strategy=2表示次月生效。buy_limit=3:表示同一个卡板或设备最多购买 3 次该套餐。3. 卡板信息查询
GET /api/v1/info3. 卡板信息查询
查询指定卡板的流量、余额、状态和实名状态。
请求信息
GET/api/v1/info业务参数
card_noCARD123456789请求示例
响应示例
{'{'} "code": "OK", "msg": "ok", "data": {'{'} "card_no": "CARD123456789", "total_flow": 10240, "used_flow": 5120, "status": 2, "official_real_name_verified": true, "balance": "100.50", "delete_on": "2026-06-01T00:00:00+08:00" {'}'}, "ok": true {'}'}data 字段说明
card_nototal_flowused_flowstatusofficial_real_name_verifiedbalancedelete_on池中池说明
card_no命中启用中的池中池,used_flow直接返回运营商上游数据中的已用流量。total_flow仍表示本地可用总流量;池中池卡板可能没有单卡套餐订单,delete_on可能为空。4. 获取卡板实名链接
GET /api/v1/real-name-url4. 获取卡板实名链接
获取指定卡板的官方实名链接。
请求信息
GET/api/v1/real-name-url业务参数
card_noCARD123456789请求示例
成功响应
{'{'} "code": "OK", "msg": "ok", "data": "https://example.com/real-name?card_no=CARD123456789", "ok": true {'}'}业务规则
BadRequest,msg为卡板需要先充值后实名DataMissingInternalError,msg带具体失败原因5. 刷新卡板流量
POST /api/v1/refresh-flow5. 刷新卡板流量
主动刷新指定卡板的最新流量信息,成功后仅返回成功状态。
请求信息
POST/api/v1/refresh-flow业务参数
card_noCARD123456789请求示例
{'{'} "card_no": "CARD123456789", "access_key": "ak_test123", "timestamp": "1730619000", "nonce": "test123", "signature": "abc123def456" {'}'}成功响应
{'{'} "code": "OK", "msg": "ok", "ok": true {'}'}6. 卡板复机
POST /api/v1/start6. 卡板复机
对指定卡板执行复机操作。
请求信息
POST/api/v1/start业务参数
card_noCARD123456789权限要求
API 账号必须具有停复机权限。
池中池说明
Forbidden,需要先充值或补足池子余额。成功响应
{'{'} "code": "OK", "msg": "ok", "data": true, "ok": true {'}'}7. 卡板停机
POST /api/v1/stop7. 卡板停机
对指定卡板执行停机操作。
请求信息
POST/api/v1/stop业务参数
card_noCARD123456789权限要求
API 账号必须具有停复机权限。
池中池说明
Forbidden,需要先充值或补足池子余额。成功响应
{'{'} "code": "OK", "msg": "ok", "data": true, "ok": true {'}'}8. 卡板套餐订购
POST /api/v1/orders8. 卡板套餐订购
为指定卡板订购套餐。
请求信息
POST/api/v1/orders业务参数
card_noCARD123456789package_codepkg_d4k9...strategy1=本月生效,2=次月生效1请求示例
{'{'} "card_no": "CARD123456789", "package_code": "pkg_d4k9...", "strategy": 1, "access_key": "ak_test123", "timestamp": "1730619000", "nonce": "test123", "signature": "abc123def456" {'}'}成功响应
{'{'} "code": "OK", "msg": "ok", "data": {'{'} "order_no": "ORD202605030001" {'}'}, "ok": true {'}'}业务规则
strategy=1表示本月生效,strategy=2表示次月生效。9. 获取移动 Token
POST /api/v1/token9. 获取移动 Token
根据渠道 ID 获取移动下游实时 token。
请求信息
POST/api/v1/token业务参数
keychannel_key),仅支持移动渠道8d12...a91f请求示例
{'{'} "key": "8d12...渠道密钥...a91f" {'}'}成功响应
{'{'} "code": "OK", "msg": "ok", "data": {'{'} "token": "3d7d94df3cf1e7942efe408ee141cca6" {'}'}, "ok": true {'}'}10. 设备信息查询
GET /api/v1/device/info10. 设备信息查询
查询指定设备信息,包括设备基础信息、流量信息和卡槽信息。
请求信息
GET/api/v1/device/info业务参数
device_noDEVICE123456789请求示例
响应示例
{'{'} "code": "OK", "msg": "ok", "data": {'{'} "device_no": "DEVICE123456789", "balance": "50.00", "signal": 4, "electricity": 85, "device_conn_num": 3, "wifi_status": 1, "hide_wifi": false, "wifi_name": "TCZK-5G", "used_flow": 1024.5, "total_flow": 20480, "delete_on": "2026-06-01T00:00:00+08:00", "card_slots": [ {'{'} "slot_code": "1", "card_no": "8986001234567890123", "official_real_name_verified": true, "card_status": 2, "is_main_slot": true, "is_current_slot": true {'}'} ] {'}'}, "ok": true {'}'}data 字段说明
device_nobalancesignalelectricitydevice_conn_numwifi_statushide_wifiwifi_nameused_flowtotal_flowdelete_oncard_slotscard_slots 字段说明
slot_codecard_noofficial_real_name_verifiedcard_statusis_main_slotis_current_slot11. 获取设备实名链接
GET /api/v1/device/real-name-url11. 获取设备实名链接
获取指定设备所有卡槽的官方实名链接列表。
请求信息
GET/api/v1/device/real-name-url业务参数
device_noDEVICE123456789请求示例
成功响应
{'{'} "code": "OK", "msg": "ok", "data": [ {'{'} "slot_code": "1", "card_no": "8986001234567890123", "official_real_name_verified": false, "is_main_slot": true, "is_current_slot": true, "url": "https://example.com/real-name?device_no=DEVICE123456789&slot=1" {'}'}, {'{'} "slot_code": "2", "card_no": "8986001234567890124", "official_real_name_verified": true, "is_main_slot": false, "is_current_slot": false, "url": "" {'}'} ], "ok": true {'}'}data 子字段说明
slot_codecard_noofficial_real_name_verifiedis_main_slotis_current_sloturlmsg业务规则
official_real_name_verified=true,仍正常返回urlurl="",msg为设备需要先充值后实名url="",msg为当前在用单网套餐仅支持实名对应运营商网络InternalError说明
device_no,不需要传slot_code。12. 设备套餐订购
POST /api/v1/device/orders12. 设备套餐订购
为指定设备订购套餐。
请求信息
POST/api/v1/device/orders业务参数
device_noDEVICE123456789package_codepkg_d4k9...strategy1=本月生效,2=次月生效1请求示例
{'{'} "device_no": "DEVICE123456789", "package_code": "pkg_d4k9...", "strategy": 1, "access_key": "ak_test123", "timestamp": "1730619000", "nonce": "test123", "signature": "abc123def456" {'}'}成功响应
{'{'} "code": "OK", "msg": "ok", "data": {'{'} "order_no": "ORD202605030002" {'}'}, "ok": true {'}'}业务规则
strategy=1表示本月生效,strategy=2表示次月生效。13. 设备操作指令
POST /api/v1/device/command13. 设备操作指令
统一执行设备相关指令。
请求信息
POST/api/v1/device/command基础业务参数
device_noDEVICE123456789commandrestartcommand 明细
restartshutdownrestart_deviceshutdown_devicefactory_resetswitch_networkslot_code必填set_wifi_visiblehidden必填,bool,true=隐藏,false=显示update_wifiwifi_name、wifi_password必填请求示例:设备复机
{'{'} "device_no": "DEVICE123456789", "command": "restart", "access_key": "ak_test123", "timestamp": "1730619000", "nonce": "test123", "signature": "abc123def456" {'}'}请求示例:设备关机
{'{'} "device_no": "DEVICE123456789", "command": "shutdown_device", "access_key": "ak_test123", "timestamp": "1730619000", "nonce": "test123", "signature": "abc123def456" {'}'}请求示例:切网
{'{'} "device_no": "DEVICE123456789", "command": "switch_network", "slot_code": "1", "access_key": "ak_test123", "timestamp": "1730619000", "nonce": "test123", "signature": "abc123def456" {'}'}请求示例:修改 WiFi
{'{'} "device_no": "DEVICE123456789", "command": "update_wifi", "wifi_name": "TCZK-5G", "wifi_password": "12345678", "access_key": "ak_test123", "timestamp": "1730619000", "nonce": "test123", "signature": "abc123def456" {'}'}成功响应
{'{'} "code": "OK", "msg": "ok", "data": true, "ok": true {'}'}业务规则
restart是设备启用/复机,shutdown是设备禁用/停机;restart_device是设备重启,shutdown_device是设备关机。restart、shutdown需要 API 账号具有停复机权限。restart_device、shutdown_device、factory_reset、switch_network、set_wifi_visible、update_wifi需要设备所属平台支持对应能力,不支持时会返回能力不支持错误。switch_network的slot_code必须存在于设备所属渠道的卡槽配置中。switch_network只允许切到该套餐对应的运营商卡槽。set_wifi_visible必须传hidden。update_wifi必须同时传wifi_name和wifi_password。14. 查询代理余额
GET /api/v1/agent/balance14. 查询代理余额
查询当前 OpenAPI 授权代理的账户余额。
请求信息
GET/api/v1/agent/balance请求示例
响应示例
{'{'} "code": "OK", "msg": "ok", "data": {'{'} "agent_id": 1, "balance": 100.5 {'}'}, "ok": true {'}'}data 字段说明
agent_idbalance说明
access_key对应代理的余额,不支持传入代理 ID 查询其他代理。