🛒

客户 API 文档

🔌
总操作数
6
👤
用户类型
客户

API 端点与身份验证

所有客户 API 调用均使用一个 <strong>HTTP POST</strong> 端点。通过 <code>key</code> 或 <code>apikey</code>(来自您的个人资料 API 密钥页面)以及 <code>action</code> 进行身份验证以选择操作。路径位于 <strong>站点根目录</strong>,格式为 <code>/api/v2</code> — 无语言前缀(例如,<code>/api</code> 前没有 <code>/en/</code>)。

POST
https://accplanet.com/api/v2

以 <code>application/x-www-form-urlencoded</code>(例如 <code>curl -d</code>)或 JSON 格式(设置 <code>Content-Type: application/json</code>)发送参数。

{
  "key": "YOUR_API_KEY",
  "action": "categories"
}

<strong>注意:</strong> 将 <code>YOUR_API_KEY</code> 替换为您自己的密钥。切勿将 API 密钥放在 URL、客户端代码或公共存储库中。支持的 <code>action</code> 值:<code>categories</code>、<code>services</code>、<code>inventory</code>、<code>add</code>、<code>status</code>、<code>balance</code>。

测试 API

选择一个操作,输入任何必需的参数,然后点击 <strong>发送请求</strong> 以调用实时 API。如果您使用 API 密钥登录,它会在下方自动填入(已遮盖)。

客户 API v2

POST
https://accplanet.com/api/v2

获取分类

所有父分类及其子分类名称(用于筛选<strong>服务列表</strong>)。

请求参数
参数类型描述必需
key / apikey字符串您的 API 密钥
action字符串categories
示例请求
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=categories"
响应示例
{
  "categories": [
    {
      "category": "Social",
      "subcategories": ["Premium", "Standard"]
    },
    {
      "category": "Digital goods",
      "subcategories": []
    }
  ]
}
POST
https://accplanet.com/api/v2

服务列表

可用的产品(服务)及库存。可选筛选条件使用 <strong>分类/子分类名称</strong>(由“获取分类”返回),或传递 <code>service</code> 以按 ID(<code>business_id</code> 或 MongoDB ID)获取单个产品。参数 <code>language</code> 控制 <code>name</code>、<code>description</code>、<code>category</code> 和 <code>subcategory</code> 的本地化(见下表)。<code>limit=0</code> 表示一次返回所有项目。

请求参数
参数类型描述必需
key / apikey字符串您的 API 密钥
action字符串services
page数字页码(默认 <code>1</code>),当 <code>limit</code> &gt; 0 时No
limit数字每页项目数;<code>0</code> = 返回全部(默认 <code>0</code>)No
category字符串父分类名称(来自获取分类)No
subcategory字符串子类别名称(来自获取类别)No
service字符串仅返回此服务/产品 ID(与列表项中的 ID 相同)No
language字符串响应语言 — 使用下方支持的语言代码(默认 <code>en</code>)No
支持的语言代码 (language)

传递以下值之一(匹配时不区分大小写)。如果省略或设置为 <code>en</code>,字段将保持<strong>英文</strong>(存储的源文本)。任何其他代码将在配置了 <code>AITRANSLATOR_BASE_URL</code> 时通过 Aitranslator 解析翻译;缺失的翻译将回退为英文,直到排队的翻译完成。

代码语言本地名称
en English English
zh Chinese 中文
es Spanish Español
fr French Français
de German Deutsch
ja Japanese 日本語
ko Korean 한국어
pt Portuguese Português
pt-BR Portuguese (Brazil) Português (Brasil)
ru Russian Русский
ar Arabic العربية
hi Hindi हिन्दी
vi Vietnamese Tiếng Việt
ur Urdu اردو
th Thai ไทย
tr Turkish Türkçe
bn-BD Bengali (Bangladesh) বাংলা
也接受(别名)

这些字符串会被规范化为上述主代码(同一翻译桶):

您可以发送解析为
zh-hans zh
zh-cn zh
zh-sg zh
zh-hant zh
zh-tw zh
zh-hk zh
zh-mo zh
pt-br pt-BR
pt_br pt-BR
ptbr pt-BR
bn-bd bn-BD
bd bn-BD
en-us en
en-gb en

<strong>不支持:</strong> 任何其他 <code>language</code> 值将被视为英文(不进行翻译)。请使用此处列出的确切主代码或别名。

示例请求
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "page=1" \
  -d "limit=50"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "category=Instagram"
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=services" \
  -d "service=10042" \
  -d "language=zh"
响应示例

<strong>默认</strong>(<code>limit</code> 省略或为 <code>0</code>):一次响应返回所有服务。

{
  "services": [
    {
      "service": 10042,
      "name": "Example product A",
      "description": "Product description (may be HTML)",
      "type": "Default",
      "category": "Social",
      "subcategory": "Instagram",
      "rate": "9.99",
      "min": 1,
      "max": 100,
      "refill": false,
      "cancel": false,
      "stock": 100,
      "entityType": "product",
      "autoDelivery": true
    }
  ],
  "total": 2,
  "page": 1,
  "limit": 0,
  "total_pages": 1
}

<strong>service</strong> 是产品的数字 <code>business_id</code>(如果已设置);否则是 MongoDB ID 的字符串形式。在<strong>检查库存</strong>和<strong>添加订单</strong>中使用相同的值。<strong>category</strong>/<strong>subcategory</strong> 与<strong>获取分类</strong>返回的名称匹配(当产品仅附加到顶级分类时,<code>subcategory</code> 为空)。<strong>description</strong> 是完整的产品描述(可能包含来自供应商编辑器的 HTML)。

POST
https://accplanet.com/api/v2

检查库存

单个服务的库存(与服务列表中的 <code>service</code> ID 相同)。

请求参数
参数类型描述必需
key / apikey字符串您的 API 密钥
action字符串inventory
service字符串服务列表中的服务/产品 ID
示例请求
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=inventory" \
  -d "service=10042"
响应示例
{
  "service": 10042,
  "stock": 42,
  "available": true,
  "entityType": "product",
  "autoDelivery": true
}
POST
https://accplanet.com/api/v2

添加订单

创建订单并从<strong>账户余额</strong>支付。可选的 <code>link</code> 参数为兼容性而接受,但不会存储在订单上。

请求参数
参数类型描述必需
key / apikey字符串您的 API 密钥
action字符串add
service字符串服务列表中的服务/产品 ID
quantity数字数量(默认 <code>1</code>)No
link字符串可选(保留/未来使用)No
示例请求
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=add" \
  -d "service=10042" \
  -d "quantity=1"
响应示例

HTTP 状态 <code>201 Created</code>。

{
  "order": "000000000000000000000001"
}

<code>order</code> 值是 MongoDB <code>ObjectId</code>(字符串)。将其用于<strong>订单状态</strong>(<code>action=status</code>)。

POST
https://accplanet.com/api/v2

订单状态

请求参数
参数类型描述必需
key / apikey字符串您的 API 密钥
action字符串status
order字符串由 <code>add</code> 返回的订单 ID
示例请求
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=status" \
  -d "order=000000000000000000000001"
响应示例
{
  "status": "In progress",
  "charge": "75.00",
  "start_count": 3,
  "remains": 1,
  "delivered_units": 2,
  "currency": "USD",
  "autoDelivery": true,
  "entityType": "product"
}
{
  "status": "Completed",
  "charge": "50.00",
  "start_count": 2,
  "remains": 0,
  "delivered_units": 2,
  "currency": "USD",
  "autoDelivery": true,
  "entityType": "product",
  "accounts": ["example_user:redacted", "example_user_2:redacted"]
}
POST
https://accplanet.com/api/v2

平衡

请求参数
参数类型描述必需
key / apikey字符串您的 API 密钥
action字符串balance
示例请求
curl -X POST https://accplanet.com/api/v2 \
  -d "key=YOUR_API_KEY" \
  -d "action=balance"
响应示例
{
  "balance": "100.00",
  "currency": "USD"
}

余额是您的<strong>用户</strong>钱包(用于购买)。

POST
https://accplanet.com/api/v2

错误响应

错误使用单个 <code>error</code> 字符串。错误的或缺失的 API 凭据通常返回 HTTP <code>401</code>,内容为 <code>{"error": "Invalid API key"}</code>;验证问题通常返回 <code>400</code>。

{"error": "Invalid API key"}
{"error": "Invalid action"}
{"error": "Service ID is required"}
{"error": "Service not found"}
{"error": "Product not found."}
{"error": "This product is not available for purchase."}
{"error": "Invalid quantity."}
{"error": "Minimum quantity is 2."}
{"error": "Insufficient stock. Available: 10."}
{"error": "Insufficient balance. Please recharge your account."}
{"error": "Order not found"}
{"error": "Category not found"}
{"error": "Subcategory not found"}
{"error": "Subcategory not found in category"}
Telegram