PerfectPanel 兼容提供商 API

将您的面板连接到 WOWLIKE

用于导入服务、下订单、跟踪交付、请求取消以及读取 THB 余额的生产就绪参考。

HTTP方式
POST
API 端点
https://wowlike-th.com/api/v2
兼容别名
https://wowlike-th.com/api/v1
响应格式
JSON

开始使用

连接只需三步

在 PerfectPanel 或任何支持常见 SMM 面板 API 格式的客户端中使用相同的 API URL 和密钥。

  1. 1

    创建您的密钥

    创建一个帐户,然后从配置文件中生成 API 密钥。完整密钥仅显示一次。

  2. 2

    配置您的面板

    在 PerfectPanel 中添加 API 端点作为提供者 URL 并粘贴您的 WOWLIKE API 密钥。

  3. 3

    运行冒烟测试

    请求您的余额,然后导入服务。 JSON 余额响应确认连接。

使用 https://wowlike-th.com/api/v2 作为主要终点。如果提供商面板通过 API 版本 1 连接,则使用 https://wowlike-th.com/api/v1. 两个端点使用相同的 API 密钥并返回相同的服务数据。

bash
curl -X POST "https://wowlike-th.com/api/v2" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "key=$WOWLIKE_API_KEY" \
  -d "action=balance"

安全

验证每个请求

在名为 key 的表单字段中发送您的 API 密钥。该密钥标识请求使用的会员帐户、价格、钱包和订单。

密钥生命周期

每个帐户可以激活一个 API 密钥。轮换或撤销它会立即使之前的密钥失效。 WOWLIKE 仅存储加密哈希。

速率限制

读取操作每分钟允许 120 个请求。添加和取消操作允许每分钟 30 个请求。限制适用于每个成员和源 IP。

将密钥保密。 将其存储在服务器端机密或环境变量中。切勿将其放入浏览器 JavaScript、公共存储库、屏幕截图或支持消息中。

SERVICES

服务清单

导入该帐户当前可用的服务和会员特定价格。

POSThttps://wowlike-th.com/api/v2action=services
范围类型描述
keystring您的私人 WOWLIKE 成员 API 密钥。
action"services"一定是字面值服务。
bash
curl -X POST "https://wowlike-th.com/api/v2" \
  -d "key=$WOWLIKE_API_KEY" \
  -d "action=services"

响应示例

json
[
  {
    "service": 123,
    "name": "ผู้ติดตาม Instagram — เสถียร",
    "nameEn": "Instagram followers — stable",
    "descriptionEn": "Stable delivery with refill support.",
    "type": "Default",
    "rate": 42,
    "min": 100,
    "max": 10000,
    "dripfeed": false,
    "refill": true,
    "cancel": true,
    "category": "บริการ Instagram ประเทศไทย",
    "categoryEn": "บริการ Instagram ประเทศไทย"
  },
  {
    "service": 124,
    "name": "ความคิดเห็นกำหนดเอง",
    "nameEn": "Custom comments",
    "descriptionEn": null,
    "type": "Custom Comments",
    "rate": 85,
    "min": 10,
    "max": 1000,
    "dripfeed": false,
    "refill": false,
    "cancel": false,
    "category": "บริการ Instagram ประเทศไทย",
    "categoryEn": "บริการ Instagram ประเทศไทย"
  }
]

服务是WOWLIKE分配的永久ID,不依赖于提供者ID。 category和categoryEn包含服务组; rate、min、max是JSON数字,而dripfeed、refill、cancel则发布有效的服务能力。

每个请求都会返回最新的会员价格、限制和可用服务列表,而不使用响应缓存。下游系统可以轮询服务动作来同步数据;轮询频率以及是否启用同步控制取决于下游适配器。

ADD

添加订单

为已发布的服务创建订单,并使用当前会员特定价格从会员钱包中扣除。

POSThttps://wowlike-th.com/api/v2action=add
范围类型描述
keystring您的私人 WOWLIKE 成员 API 密钥。
action"add"必须是文字值添加。
serviceinteger服务操作返回的永久数字服务 ID。
linkURL页面、帖子、个人资料或媒体的公共目标 URL。
quantityinteger默认服务所需。请求的金额必须在服务的最小值和最大值范围内。
commentsstring自定义评论服务所需。每行发送一条评论;数量是根据非空行计算的。

默认服务

bash
curl -X POST "https://wowlike-th.com/api/v2" \
  -d "key=$WOWLIKE_API_KEY" \
  -d "action=add" \
  -d "service=123" \
  --data-urlencode "link=https://example.com/post" \
  -d "quantity=1000"

定制评论服务

bash
curl -X POST "https://wowlike-th.com/api/v2" \
  -d "key=$WOWLIKE_API_KEY" \
  -d "action=add" \
  -d "service=124" \
  --data-urlencode "link=https://example.com/post" \
  --data-urlencode $'comments=第一条评论\n第二条评论'
json
{
  "order": 9001
}

对于自定义评论,请省略数量并以换行符分隔的文本形式发送评论。 WOWLIKE 修剪空白行并使用剩余行数作为订单数量。

仅在传输失败且确定未返回订单号时重试。对于需要保证幂等重试的集成,请使用 REST 订单端点。

STATUS

订单状态

读取属于 API 密钥所有者的一份订单或最多 100 份订单。

POSThttps://wowlike-th.com/api/v2action=status
范围类型描述
keystring您的私人 WOWLIKE 成员 API 密钥。
action"status"必须是字面值状态。
orderinteger一份 WOWLIKE 订单号。请勿与订单一起发送。
ordersstring以逗号分隔的订单号,最多 100 个。请勿与订单一起发送。

发送一个或多个订单,切勿同时发送。多订单响应由请求的订单号作为关键字。

bash
# 单笔订单
curl -X POST "https://wowlike-th.com/api/v2" \
  -d "key=$WOWLIKE_API_KEY" -d "action=status" -d "order=9001"

# 多个订单
curl -X POST "https://wowlike-th.com/api/v2" \
  -d "key=$WOWLIKE_API_KEY" -d "action=status" -d "orders=9001,9002"
json
{
  "9001": {
    "charge": "42",
    "start_count": "1250",
    "status": "In progress",
    "remains": "600",
    "currency": "THB"
  },
  "9002": {"error": "Incorrect order ID"}
}

状态值

地位描述
Pending已收到并等待提交或处理。
Processing由提供商提交并准备。
In progress目前正在交付中。
Completed已交付全部要求的数量。
Partial部分订单已交付,未交付的剩余部分已退款。
Canceled订单被取消或失败,相应余额已退还。

CANCEL

取消订单

请求取消最多 100 个其服务广告取消的活动订单:true。

POSThttps://wowlike-th.com/api/v2action=cancel
范围类型描述
keystring您的私人 WOWLIKE 成员 API 密钥。
action"cancel"必须是字面值取消。
ordersstring要取消的以逗号分隔的订单号,最多 100 个。
bash
curl -X POST "https://wowlike-th.com/api/v2" \
  -d "key=$WOWLIKE_API_KEY" \
  -d "action=cancel" \
  -d "orders=9001,9002"
json
[
  {"order": 9001, "cancel": 1},
  {"order": 9002, "cancel": {"error": "Error calling provider"}}
]

cancel:1表示取消请求被接受。当上游提供商或 WOWLIKE 运营团队完成它时,它可能仍处于待处理状态;继续轮询订单状态以获得最终结果。

BALANCE

用户余额

以 THB 中的十进制字符串形式返回可用的会员钱包余额。

POSThttps://wowlike-th.com/api/v2action=balance
范围类型描述
keystring您的私人 WOWLIKE 成员 API 密钥。
action"balance"必须是字面值平衡。
bash
curl -X POST "https://wowlike-th.com/api/v2" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "key=$WOWLIKE_API_KEY" \
  -d "action=balance"
json
{
  "balance": "1250.7500",
  "currency": "THB"
}

错误处理

错误使用可预测的 JSON 形状

PerfectPanel 兼容响应返回错误字段而不是成功的有效负载。批量操作会报告受影响订单的错误,以便其他项目仍然可以成功。

错误意义
Invalid API key密钥丢失、格式错误、已撤销或与活跃成员不匹配。
Too many requests已超出当前读取或突变率限制。
Invalid request parameters操作或其所需参数之一丢失或格式错误。
Service not found公共服务ID不存在或不可用。
Incorrect order ID该订单不存在或属于其他成员。
Insufficient balance钱包没有足够的可用 THB 余额。
Invalid quantity数量超出服务最小或最大数量。
Error calling provider服务或当前订单状态不允许取消。
API 遵循 MeeLike 错误约定:无效密钥或与订单相关的业务错误返回带有错误字段的 HTTP 200,请求验证返回带有状态、消息、时间戳和路径的 HTTP 400,不支持的方法返回 HTTP 404,OPTIONS 返回 HTTP 204。

PHP

完整的 PHP 示例

这个小型客户端保持启用 TLS 验证,使用连接和请求超时,并在 API 返回错误时抛出。

php
<?php
final class WowlikeApi {
    public function __construct(
        private string $apiUrl,
        private string $apiKey,
    ) {}

    public function call(string $action, array $parameters = []): array {
        $handle = curl_init($this->apiUrl);
        curl_setopt_array($handle, [
            CURLOPT_POST => true,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POSTFIELDS => http_build_query([
                'key' => $this->apiKey,
                'action' => $action,
                ...$parameters,
            ]),
            CURLOPT_CONNECTTIMEOUT => 10,
            CURLOPT_TIMEOUT => 30,
            CURLOPT_SSL_VERIFYPEER => true,
            CURLOPT_HTTPHEADER => ['Accept: application/json'],
        ]);
        $body = curl_exec($handle);
        if ($body === false) {
            throw new RuntimeException(curl_error($handle));
        }
        $result = json_decode($body, true, flags: JSON_THROW_ON_ERROR);
        if (isset($result['error'])) {
            throw new RuntimeException((string) $result['error']);
        }
        return $result;
    }
}

$api = new WowlikeApi('https://wowlike-th.com/api/v2', getenv('WOWLIKE_API_KEY'));
$services = $api->call('services');
$order = $api->call('add', [
    'service' => 123,
    'link' => 'https://example.com/post',
    'quantity' => 1000,
]);
$commentOrder = $api->call('add', [
    'service' => 124,
    'link' => 'https://example.com/post',
    'comments' => "First comment\nSecond comment",
]);
$status = $api->call('status', ['order' => $order['order']]);
$statuses = $api->call('status', ['orders' => '9001,9002']);
$cancellations = $api->call('cancel', ['orders' => '9001,9002']);

REST API

高级 REST API

使用 REST 接口进行自定义服务器集成,该集成受益于 HTTP 状态代码、一致的响应信封和幂等订单创建。

方法端点目的
GET/api/v1/member/services列出可用服务
GET/api/v1/member/balance读取钱包余额
POST/api/v1/member/orders创建幂等订单
GET/api/v1/member/orders/{orderNumber}阅读一份订单
bash
curl "https://wowlike-th.com/api/v1/member/services?locale=zh" \
  -H "Authorization: Bearer $WOWLIKE_API_KEY"

curl -X POST "https://wowlike-th.com/api/v1/member/orders" \
  -H "Authorization: Bearer $WOWLIKE_API_KEY" \
  -H "Idempotency-Key: merchant-order-2026-0001" \
  -H "Content-Type: application/json" \
  -d '{"serviceId":123,"targetUrl":"https://example.com/post","quantity":1000}'

承载认证

在授权中发送相同的成员密钥:Bearer <key>。 REST 端点在适用时返回 HTTP 401、403、422 或 429。

安全重试

每个 REST 订单请求必须包含一个最多 200 个字符的唯一幂等密钥。重复使用它会返回原始订单,而不是收取两次费用。

成功信封

json
{
  "success": true,
  "data": {},
  "error": null
}

需要帮助验证集成或意外响应吗? 联系支持人员