01 / 先跑通一次购买
登录→选线路 / 号段→创建订单→余额支付→查询并提取
- 准备有效的700SU客户账号,确保余额足够。在网站个人中心 → API 对接复制当前Token,或通过登录接口获取;在自己的服务端安全保存配置。
- 读取目录,原样保留country、city、line、ip_type;需要指定号段时再查询CIDR列表。
- 创建订单后立即保存内部id和order_no,核对最终amount_cny及你自己的费用上限。
- 向原order_no发起余额支付。不要以HTTP 200、ok=true或paid代替交付成功。
- 每3–5秒查询原订单;fulfilled后按内部id提取ips,核对数量。超过你的等待期限时保存订单号,进入待核对队列。
上述轮询间隔是接入建议,不是服务端统一限额或交付时效承诺。
# 以下变量从你的配置或前一步响应取得,不要把密码写入脚本仓库。
# login.json 内容:{"email":"你的邮箱","password":"你的密码"}
curl --request POST 'https://700su.com/api/auth/login' \
--header 'Content-Type: application/json' --data-binary @login.json
# 将返回的 token 安全保存为环境变量 TOKEN
curl 'https://700su.com/api/users/me' \
--header "Authorization: Bearer $TOKEN"
# order.json 中 country/city/line/ip_type 均复制自目录;不要照抄演示线路。
curl --request POST 'https://700su.com/api/orders' \
--header "Authorization: Bearer $TOKEN" \
--header 'Content-Type: application/json' --data-binary @order.json
# 真实扣款:先核对订单金额;ORDER_NO 使用上一步返回值。
curl --request POST "https://700su.com/api/orders/$ORDER_NO/pay-balance" \
--header "Authorization: Bearer $TOKEN"
# 使用内部整数 ID 提取,不能把 AU- 开头的订单号放在此处。
curl "https://700su.com/api/orders/id/$ORDER_ID/ips" \
--header "Authorization: Bearer $TOKEN"
curl示例没有自动重试选项。使用后删除临时login.json。程序化接入示例见下载区。
03 / 支付、交付与重试
购买状态
| 返回状态 | 含义 | 处理方式 |
|---|
| pending + pending | 订单未付款 | 确认金额后支付原订单 |
| paid + provisioning | 已付款,正在交付 | 查询原订单,勿再次购买 |
| paid + fulfilled | 交付完成 | 提取ips并核对数量 |
| delivery_review_required=true | 交付需要核对 | 停止自动重下单,提供原订单号联系客服 |
| order_status=cancelled | 订单已取消 | 停止此单处理 |
| 未知状态或数量不匹配 | 结果尚未确认 | 保留原单进入核对队列 |
创建请求超时,不能直接再建一单。当前创建接口没有客户订单号或Idempotency-Key去重能力。创建前在自己的系统记录一次业务请求,创建成功后持久化700SU订单号。响应丢失时查询本人订单列表,核对时间、规格、数量与金额;不能唯一匹配则人工核对。不要自动支付一个“看起来相似”的订单。
余额支付超时
先查同一个order_no。若已paid则只查交付;若仍pending且报价未过期、订单有效、金额符合预期,可继续处理原单。并发重复付款应由接入端避免;不要通过重新创建订单解决支付超时。
续费完成的判断
payment_status=paid表示已扣款。只有renewal_status=completed,并核对各项new_expires_at/current_expires_at确已延长,才向客户显示续费成功。processing、renewed_pending_sync为处理中;retry_required、partially_completed、partially_resolved应逐项核对并联系客服。HTTP 202不是失败后需要重付的信号。
创建续费遇到renewal_order_exists时,使用响应中的batch_no查询。批次超时后先查原批次;不要重新续费同一IP。已到期、被回收或不可续费的IP不能通过接口恢复原IP。
04 / 接口参考
示例仅展示关键字段,不是线上订单或价格承诺。所有请求路径均拼接到 https://700su.com。
POST/api/auth/login公开
01. 登录并获取 Token
使用700SU客户账号邮箱和密码登录。成功后保存token,后续以Authorization: Bearer传入。Token最长有效期7天,退出登录、账号停用等会使会话提前失效;没有refresh_token接口。
JSON 请求体
| 字段 | 类型 | 说明 |
|---|
| email | string | 客户账号邮箱;必填 |
| password | string | 账号密码;必填 |
请求示例(使用实际目录值替换)
{
"email": "your-account@example.com",
"password": "YOUR_ACCOUNT_PASSWORD"
}
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| token | string | 会话Token,禁止公开或写入日志 |
| user | object | |
响应示例(字段节选)
{
"token": "YOUR_ACCESS_TOKEN",
"user": {
"id": 100,
"email": "your-account@example.com",
"status": "active",
"balance_cny": 100
}
}
GET/api/users/me需登录
02. 查询账户和余额
读取balance_cny获取余额。discount_rate只是普通折扣规则;最终支付价以订单amount_cny或续费total_cny为准。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| id | integer | |
| email | string | |
| status | string | |
| balance_cny | number | 人民币账户余额 |
| discount_rate | number | 普通折扣乘数,例如0.4表示4折;专属价可能覆盖此规则 |
| active_ips | integer | 有效IP数量 |
| orders_count | integer | 本月购买订单数量 |
| total_spend_cny | number | 累计已支付购买订单金额 |
响应示例(字段节选)
{
"id": 100,
"email": "your-account@example.com",
"status": "active",
"balance_cny": 100,
"discount_rate": 1
}
POST/api/auth/logout需登录
03. 注销当前 Token
注销当前会话后需要重新登录。
响应字段 · HTTP 200
响应示例(字段节选)
{
"ok": true
}
GET/api/public/catalog公开
04. 查询公开地区与线路
公开可售静态目录。按country、city、line、ip_type四个原值选择商品;不要把展示标签或国家缩写作为下单参数。ip_kind用于区分原生与广播,不能替代ip_type。库存仅供参考,不预留资源。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| country | string | 目录返回的国家/地区原值 |
| city | string | 目录返回的城市原值 |
| line | string | 目录返回的完整线路原值,不可自行拼接 |
| ip_type | string | 按目录原值传入;静态住宅通常为 static_residential |
| continent | string | 洲/大区 |
| ip_kind | string | native:原生;broadcast:广播 |
| ip_kind_label | string | 类型显示名 |
| country_code | string | 国家代码,以返回值为准 |
| available_count | integer | 可售库存参考值;创建及支付时会再次检查 |
| price_30d | number | 公开30天单价,人民币 |
响应示例(字段节选)
[
{
"country": "美国",
"city": "示例城市",
"line": "原生 IP · 示例线路",
"ip_type": "static_residential",
"ip_kind": "native",
"available_count": 100,
"price_30d": 25
}
]
GET/api/inventory/availability需登录
05. 查询账号可见价格
登录后查询。若customer_pricing为unavailable,停止自动购买;customer_price_30d存在且为正数时即为专属单价,不再乘折扣。无专属价时可用price_30d×discount_rate做预估,最终以创建订单的amount_cny为准。只依赖本文列出的业务字段,其余字段忽略。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| country | string | 目录返回的国家/地区原值 |
| city | string | 目录返回的城市原值 |
| line | string | 目录返回的完整线路原值,不可自行拼接 |
| ip_type | string | 按目录原值传入;静态住宅通常为 static_residential |
| continent | string | 洲/大区 |
| ip_kind | string | native:原生;broadcast:广播 |
| ip_kind_label | string | 类型显示名 |
| country_code | string | 国家代码,以返回值为准 |
| available_count | integer | 可售库存参考值;创建及支付时会再次检查 |
| price_30d | number | 公开30天单价,人民币 |
| customer_price_30d | number | 出现时为当前账号专属30天单价,不再重复打折 |
| customer_pricing | string | custom:专属价;unavailable:价格暂不可用;字段也可能省略 |
响应示例(字段节选)
[
{
"country": "美国",
"city": "示例城市",
"line": "原生 IP · 示例线路",
"ip_type": "static_residential",
"price_30d": 25,
"customer_price_30d": 10,
"customer_pricing": "custom",
"available_count": 100
}
]
GET/api/static/available-cidrs公开
06. 查询可选 IP 号段
传入选中线路的四个原值。items为空表示当前没有可选号段;随机分配时创建订单不传selected_cidr_id。指定号段只能选择CIDR范围,不能指定完整IP。号段结果缓存约60秒;下单时重新校验。此接口当前按来源IP每分钟最多90次。
查询参数
| 参数 | 必填 | 说明 |
|---|
| country | 是 | 目录返回的国家/地区原值 |
| city | 是 | 目录返回的城市原值 |
| line | 是 | 目录返回的完整线路原值,不可自行拼接 |
| ip_type | 是 | 按目录原值传入;静态住宅通常为 static_residential |
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| supported | boolean | 是否有可展示的号段 |
| items | array | |
响应示例(字段节选)
{
"supported": true,
"items": [
{
"id": "OPAQUE_CIDR_ID",
"cidr": "192.0.2.0/24",
"available_count": 12
}
]
}
POST/api/orders需登录
07. 创建购买订单
仅创建待支付订单,不扣余额、不代表预留库存。保存id、order_no与amount_cny。未付款报价保留30分钟,过期后重新确认价格。当前不接受客户端幂等键;相同请求再次提交会创建另一笔订单,超时后不可直接重发。
JSON 请求体
| 字段 | 类型 | 说明 |
|---|
| country | string | 目录返回的国家/地区原值;必填 |
| city | string | 目录返回的城市原值;必填 |
| line | string | 目录返回的完整线路原值,不可自行拼接;必填 |
| ip_type | string | 按目录原值传入;静态住宅通常为 static_residential;必填 |
| quantity | integer | 购买数量,1–500 |
| cycle_days | integer | 当前只支持30天 |
| protocol | string | 明确传入http或socks5;默认http |
| selected_cidr_id | string | 可选。号段接口返回的id,原样传入;随机分配时省略 |
请求示例(使用实际目录值替换)
{
"country": "从目录复制国家",
"city": "从目录复制城市",
"line": "从目录复制完整线路",
"ip_type": "static_residential",
"quantity": 1,
"cycle_days": 30,
"protocol": "socks5"
}
响应字段 · HTTP 201
| 字段 | 类型 | 说明 |
|---|
| id | integer | 700SU内部订单ID;提取IP使用此ID |
| order_no | string | AU-开头的业务订单号;支付及查单使用此值 |
| country | string | 目录返回的国家/地区原值 |
| city | string | 目录返回的城市原值 |
| line | string | 目录返回的完整线路原值,不可自行拼接 |
| ip_type | string | 按目录原值传入;静态住宅通常为 static_residential |
| quantity | integer | 购买数量 |
| cycle_days | integer | 30天 |
| protocol | string | http 或 socks5 |
| amount_cny | number | 本订单最终应付人民币总额,已包含账号价格规则 |
| payment_status | string | pending 或 paid;未知值不得视为成功 |
| order_status | string | pending、provisioning、fulfilled、cancelled 等;以返回为准 |
| payment_network | string | 余额支付后为 BALANCE |
| ip_prefix | string | 所选号段 |
| created_at | string | 订单创建时间 |
| paid_at | string | 支付时间 |
| delivery_review_required | boolean | 仅详情/列表等部分响应提供。true时停止自动重下单并联系客服 |
| quote_expired | boolean | 详情提供;未付订单报价是否已过期 |
| quote_expires_at | string | 详情提供;ISO 8601报价截止时间 |
响应示例(字段节选)
{
"id": 12345,
"order_no": "AU-20261104000000-DEMO",
"country": "美国",
"city": "示例城市",
"line": "原生 IP · 示例线路",
"ip_type": "static_residential",
"quantity": 1,
"cycle_days": 30,
"protocol": "socks5",
"amount_cny": 25,
"payment_status": "pending",
"order_status": "pending"
}
GET/api/orders/{orderNo}需登录
08. 按订单号查询
orderNo使用AU-开头的订单号。以payment_status判断是否付款,以order_status判断交付;delivery_review_required=true时记录原订单号并联系客服。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| order | Order | |
| payment | object | |
响应示例(字段节选)
{
"order": {
"id": 12345,
"order_no": "AU-20261104000000-DEMO",
"country": "美国",
"city": "示例城市",
"line": "原生 IP · 示例线路",
"ip_type": "static_residential",
"quantity": 1,
"cycle_days": 30,
"protocol": "socks5",
"amount_cny": 25,
"payment_status": "paid",
"order_status": "provisioning",
"delivery_review_required": false,
"quote_expired": false,
"quote_expires_at": "2026-11-04T00:30:00Z"
},
"payment": null
}
GET/api/orders/id/{orderId}需登录
09. 按内部 ID 查询订单
orderId使用创建订单返回的整数id;与业务订单号不同。字段和按订单号查询一致。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| order | Order | |
| payment | object | |
GET/api/users/me/orders需登录
10. 查询本人购买订单
当前返回本人购买订单数组,按内部id倒序,不支持分页。可用于创建请求超时后核对订单。列表可能包含历史产品,接入程序应只处理本次接入创建或明确选定的订单,不要自动支付全部待付订单。同规格订单无法唯一匹配时交人工核对。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| id | integer | 700SU内部订单ID;提取IP使用此ID |
| order_no | string | AU-开头的业务订单号;支付及查单使用此值 |
| country | string | 目录返回的国家/地区原值 |
| city | string | 目录返回的城市原值 |
| line | string | 目录返回的完整线路原值,不可自行拼接 |
| ip_type | string | 按目录原值传入;静态住宅通常为 static_residential |
| quantity | integer | 购买数量 |
| cycle_days | integer | 30天 |
| protocol | string | http 或 socks5 |
| amount_cny | number | 本订单最终应付人民币总额,已包含账号价格规则 |
| payment_status | string | pending 或 paid;未知值不得视为成功 |
| order_status | string | pending、provisioning、fulfilled、cancelled 等;以返回为准 |
| payment_network | string | 余额支付后为 BALANCE |
| ip_prefix | string | 所选号段 |
| created_at | string | 订单创建时间 |
| paid_at | string | 支付时间 |
| delivery_review_required | boolean | 仅详情/列表等部分响应提供。true时停止自动重下单并联系客服 |
| quote_expired | boolean | 详情提供;未付订单报价是否已过期 |
| quote_expires_at | string | 详情提供;ISO 8601报价截止时间 |
响应示例(字段节选)
[
{
"id": 12345,
"order_no": "AU-20261104000000-DEMO",
"country": "美国",
"city": "示例城市",
"line": "原生 IP · 示例线路",
"ip_type": "static_residential",
"quantity": 1,
"cycle_days": 30,
"protocol": "socks5",
"amount_cny": 25,
"payment_status": "pending",
"order_status": "pending"
}
]
POST/api/orders/{orderNo}/pay-balance需登录
11. 用余额支付购买订单
真实扣款操作。无业务请求体;调用前查单并核对amount_cny与预算。200且ok=true表示请求已处理,不代表IP已交付。already=true表示这笔订单此前已支付;继续查询该订单,不另建单。网络超时或5xx后先查原订单。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| ok | boolean | |
| already | boolean | |
| order | Order | |
| assigned | array | |
| balance_before | number | |
| balance_after | number | |
响应示例(字段节选)
{
"ok": true,
"already": false,
"order": {
"id": 12345,
"order_no": "AU-20261104000000-DEMO",
"country": "美国",
"city": "示例城市",
"line": "原生 IP · 示例线路",
"ip_type": "static_residential",
"quantity": 1,
"cycle_days": 30,
"protocol": "socks5",
"amount_cny": 25,
"payment_status": "paid",
"order_status": "provisioning",
"payment_network": "BALANCE"
},
"assigned": [],
"balance_before": 100,
"balance_after": 75
}
GET/api/orders/id/{orderId}/ips需登录
12. 提取该订单交付的 IP
使用内部id查询。响应为对象,IP数组位于ips。连接地址优先使用connection_host,否则使用ip,再配合port、username、password。协议采用订单protocol。已付款时ips可能暂时为空,应等待原订单完成。只把fulfilled且数量匹配的结果当作完整交付。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| order | Order | |
| payment | object | |
| ips | array | |
响应示例(字段节选)
{
"order": {
"id": 12345,
"order_no": "AU-20261104000000-DEMO",
"country": "美国",
"city": "示例城市",
"line": "原生 IP · 示例线路",
"ip_type": "static_residential",
"quantity": 1,
"cycle_days": 30,
"protocol": "socks5",
"amount_cny": 25,
"payment_status": "paid",
"order_status": "fulfilled"
},
"payment": null,
"ips": [
{
"id": 67890,
"ip": "192.0.2.10",
"connection_host": null,
"port": 10001,
"username": "EXAMPLE_USER",
"password": "EXAMPLE_PASSWORD",
"expires_at": "2026-12-04T00:00:00Z"
}
]
}
POST/api/orders/{orderNo}/cancel需登录
13. 取消未付款购买订单
仅用于未付款订单。已经支付或正在交付的订单不可通过此接口取消;不要在付款状态不明时盲目取消。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| ok | boolean | |
| already | boolean | |
| order_no | string | |
| order_status | string | |
响应示例(字段节选)
{
"ok": true,
"order_no": "AU-20261104000000-DEMO",
"order_status": "cancelled"
}
POST/api/ip-renewals/identify需登录
14. 识别 IP 与续费价格
使用已交付IP的信息识别,建议同时提供用户名和密码以避免同入口多账号歧义。renew_supported=true仅表示支持续费,仍需确认未到期;renewal_prices.price_30d为该账号续费单价,最终以创建批次的total_cny为准。
JSON 请求体
| 字段 | 类型 | 说明 |
|---|
| ip | string | IP或连接入口;必填 |
| port | integer | 端口;必填 |
| username | string | 建议传入;与password成对出现 |
| password | string | 代理密码,与username成对出现 |
请求示例(使用实际目录值替换)
{
"ip": "192.0.2.10",
"port": 10001,
"username": "EXAMPLE_USER",
"password": "EXAMPLE_PASSWORD"
}
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| ok | boolean | |
| match_mode | string | |
| ip | IP | |
| renew_supported | boolean | |
| renewal | object | |
| renewal_prices | object | |
响应示例(字段节选)
{
"ok": true,
"ip": {
"id": 67890,
"ip": "192.0.2.10",
"connection_host": null,
"port": 10001,
"username": "EXAMPLE_USER",
"password": "EXAMPLE_PASSWORD",
"expires_at": "2026-12-04T00:00:00Z"
},
"renew_supported": true,
"renewal_prices": {
"price_30d": 25
}
}
POST/api/ip-renewals/orders需登录
15. 创建续费批次
ip_ids使用交付接口返回的实例id,不是IP地址或购买订单id。一次1–500个,当前仅30天。只有本人名下可续费且未到期的实例可创建。不扣余额。返回renewal_order_exists时使用错误内batch_no查询原批次,不能重复创建。
JSON 请求体
| 字段 | 类型 | 说明 |
|---|
| ip_ids | array | 本账号已交付且未到期的IP实例ID数组;必填 |
| cycle_days | integer | 固定30;必填 |
请求示例(使用实际目录值替换)
{
"ip_ids": [
67890
],
"cycle_days": 30
}
响应字段 · HTTP 201
| 字段 | 类型 | 说明 |
|---|
| ok | boolean | |
| batch_no | string | RN-开头的续费批次号 |
| cycle_days | integer | |
| item_count | integer | |
| total_cny | number | 本批最终应付总额 |
| payment_status | string | pending 或 paid |
| renewal_status | string | draft、processing、renewed_pending_sync、retry_required、completed、cancelled、failed_confirmed、refunded、partially_completed、partially_resolved |
| can_pay | boolean | 查询详情时提供,付款前检查 |
| payment_block_reason | string | 查询详情时提供;阻止付款的错误代码 |
| already | boolean | 重复付款请求可能返回 |
| items | array | |
响应示例(字段节选)
{
"ok": true,
"batch_no": "RN-EXAMPLE-0001",
"cycle_days": 30,
"item_count": 1,
"total_cny": 25,
"payment_status": "pending",
"renewal_status": "draft",
"items": [
{
"ip_id": 67890,
"amount_cny": 25,
"old_expires_at": "2026-12-04T00:00:00Z"
}
]
}
GET/api/ip-renewals/orders/{batchNo}需登录
16. 查询续费批次
付款前检查can_pay、payment_block_reason、total_cny。付款后检查renewal_status及每个items明细的新到期时间;payment_status=paid不是续费成功的充分条件。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| ok | boolean | |
| batch_no | string | RN-开头的续费批次号 |
| cycle_days | integer | |
| item_count | integer | |
| total_cny | number | 本批最终应付总额 |
| payment_status | string | pending 或 paid |
| renewal_status | string | draft、processing、renewed_pending_sync、retry_required、completed、cancelled、failed_confirmed、refunded、partially_completed、partially_resolved |
| can_pay | boolean | 查询详情时提供,付款前检查 |
| payment_block_reason | string | 查询详情时提供;阻止付款的错误代码 |
| already | boolean | 重复付款请求可能返回 |
| items | array | |
响应示例(字段节选)
{
"batch_no": "RN-EXAMPLE-0001",
"item_count": 1,
"total_cny": 25,
"can_pay": true,
"payment_block_reason": null,
"payment_status": "pending",
"renewal_status": "draft",
"items": [
{
"ip_id": 67890,
"old_expires_at": "2026-12-04T00:00:00Z",
"new_expires_at": null
}
]
}
GET/api/users/me/renewal-orders需登录
17. 查询本人续费批次列表
按最新批次倒序返回,无分页。列表中的合计金额字段为amount_cny;详情/创建响应使用total_cny。用于查找原批次,避免重复创建。只处理已选定的本次接入资源对应批次。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| batch_no | string | |
| amount_cny | number | 批次合计 |
| item_count | integer | |
| cycle_days | integer | |
| payment_status | string | |
| renewal_status | string | |
| created_at | string | |
响应示例(字段节选)
[
{
"batch_no": "RN-EXAMPLE-0001",
"amount_cny": 25,
"item_count": 1,
"cycle_days": 30,
"payment_status": "pending",
"renewal_status": "draft"
}
]
POST/api/ip-renewals/orders/{batchNo}/pay-balance需登录
18. 用余额支付续费
真实扣款操作。200或202均须读取响应中的状态:202表示已付款但仍在处理或需要核查,不能再次创建续费批次来补做。已有paid状态时继续查询;仅全部completed且到期时间已延长才算完成。
响应字段 · HTTP 200 / 202
| 字段 | 类型 | 说明 |
|---|
| ok | boolean | |
| batch_no | string | RN-开头的续费批次号 |
| cycle_days | integer | |
| item_count | integer | |
| total_cny | number | 本批最终应付总额 |
| payment_status | string | pending 或 paid |
| renewal_status | string | draft、processing、renewed_pending_sync、retry_required、completed、cancelled、failed_confirmed、refunded、partially_completed、partially_resolved |
| can_pay | boolean | 查询详情时提供,付款前检查 |
| payment_block_reason | string | 查询详情时提供;阻止付款的错误代码 |
| already | boolean | 重复付款请求可能返回 |
| items | array | |
响应示例(字段节选)
{
"ok": true,
"already": false,
"batch_no": "RN-EXAMPLE-0001",
"payment_status": "paid",
"renewal_status": "processing",
"item_count": 1,
"total_cny": 25
}
POST/api/ip-renewals/orders/{batchNo}/cancel需登录
19. 取消未付款续费批次
只能取消全部未付款且均为draft的批次。已支付或进入处理状态的批次不可取消。
响应字段 · HTTP 200
| 字段 | 类型 | 说明 |
|---|
| ok | boolean | |
| batch_no | string | RN-开头的续费批次号 |
| cycle_days | integer | |
| item_count | integer | |
| total_cny | number | 本批最终应付总额 |
| payment_status | string | pending 或 paid |
| renewal_status | string | draft、processing、renewed_pending_sync、retry_required、completed、cancelled、failed_confirmed、refunded、partially_completed、partially_resolved |
| can_pay | boolean | 查询详情时提供,付款前检查 |
| payment_block_reason | string | 查询详情时提供;阻止付款的错误代码 |
| already | boolean | 重复付款请求可能返回 |
| items | array | |
响应示例(字段节选)
{
"ok": true,
"batch_no": "RN-EXAMPLE-0001",
"payment_status": "pending",
"renewal_status": "cancelled",
"item_count": 1
}
提取连接信息的字段说明
| 字段 | 类型 | 说明 |
|---|
| id | integer | 700SU的IP实例ID,用于续费 |
| ip | string | IP地址 |
| connection_host | string | 连接入口;非空时优先使用,否则使用ip |
| port | integer | 代理端口 |
| username | string | 代理用户名,敏感信息 |
| password | string | 代理密码,敏感信息 |
| country | string | 目录返回的国家/地区原值 |
| city | string | 目录返回的城市原值 |
| line | string | 目录返回的完整线路原值,不可自行拼接 |
| ip_type | string | 按目录原值传入;静态住宅通常为 static_residential |
| ip_prefix | string | 已选CIDR号段;随机分配可能为空 |
| status | string | assigned 表示已分配;仍需核对到期时间 |
| expires_at | string | 实际到期时间 |
续费明细字段说明
| 字段 | 类型 | 说明 |
|---|
| id | integer | 续费明细ID |
| ip_id | integer | IP实例ID |
| renewal_no | string | 续费明细号 |
| batch_no | string | 续费批次号 |
| amount_cny | number | 该IP续费最终价格 |
| cycle_days | integer | 30天 |
| payment_status | string | |
| renewal_status | string | |
| old_expires_at | string | 续费前到期时间 |
| new_expires_at | string | 确认延长后的到期时间,完成前可能为空 |
| current_expires_at | string | 当前到期时间,查询详情时提供 |