开始使用
连接只需三步
在 PerfectPanel 或任何支持常见 SMM 面板 API 格式的客户端中使用相同的 API URL 和密钥。
- 1
创建您的密钥
创建一个帐户,然后从配置文件中生成 API 密钥。完整密钥仅显示一次。
- 2
配置您的面板
在 PerfectPanel 中添加 API 端点作为提供者 URL 并粘贴您的 WOWLIKE API 密钥。
- 3
运行冒烟测试
请求您的余额,然后导入服务。 JSON 余额响应确认连接。
使用 https://wowlike-th.com/api/v2 作为主要终点。如果提供商面板通过 API 版本 1 连接,则使用 https://wowlike-th.com/api/v1. 两个端点使用相同的 API 密钥并返回相同的服务数据。
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。
SERVICES
服务清单
导入该帐户当前可用的服务和会员特定价格。
https://wowlike-th.com/api/v2action=services| 范围 | 类型 | 描述 |
|---|---|---|
| key | string | 您的私人 WOWLIKE 成员 API 密钥。 |
| action | "services" | 一定是字面值服务。 |
curl -X POST "https://wowlike-th.com/api/v2" \
-d "key=$WOWLIKE_API_KEY" \
-d "action=services"响应示例
[
{
"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
添加订单
为已发布的服务创建订单,并使用当前会员特定价格从会员钱包中扣除。
https://wowlike-th.com/api/v2action=add| 范围 | 类型 | 描述 |
|---|---|---|
| key | string | 您的私人 WOWLIKE 成员 API 密钥。 |
| action | "add" | 必须是文字值添加。 |
| service | integer | 服务操作返回的永久数字服务 ID。 |
| link | URL | 页面、帖子、个人资料或媒体的公共目标 URL。 |
| quantity | integer | 默认服务所需。请求的金额必须在服务的最小值和最大值范围内。 |
| comments | string | 自定义评论服务所需。每行发送一条评论;数量是根据非空行计算的。 |
默认服务
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"定制评论服务
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第二条评论'{
"order": 9001
}对于自定义评论,请省略数量并以换行符分隔的文本形式发送评论。 WOWLIKE 修剪空白行并使用剩余行数作为订单数量。
仅在传输失败且确定未返回订单号时重试。对于需要保证幂等重试的集成,请使用 REST 订单端点。
STATUS
订单状态
读取属于 API 密钥所有者的一份订单或最多 100 份订单。
https://wowlike-th.com/api/v2action=status| 范围 | 类型 | 描述 |
|---|---|---|
| key | string | 您的私人 WOWLIKE 成员 API 密钥。 |
| action | "status" | 必须是字面值状态。 |
| order | integer | 一份 WOWLIKE 订单号。请勿与订单一起发送。 |
| orders | string | 以逗号分隔的订单号,最多 100 个。请勿与订单一起发送。 |
发送一个或多个订单,切勿同时发送。多订单响应由请求的订单号作为关键字。
# 单笔订单
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"{
"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。
https://wowlike-th.com/api/v2action=cancel| 范围 | 类型 | 描述 |
|---|---|---|
| key | string | 您的私人 WOWLIKE 成员 API 密钥。 |
| action | "cancel" | 必须是字面值取消。 |
| orders | string | 要取消的以逗号分隔的订单号,最多 100 个。 |
curl -X POST "https://wowlike-th.com/api/v2" \
-d "key=$WOWLIKE_API_KEY" \
-d "action=cancel" \
-d "orders=9001,9002"[
{"order": 9001, "cancel": 1},
{"order": 9002, "cancel": {"error": "Error calling provider"}}
]cancel:1表示取消请求被接受。当上游提供商或 WOWLIKE 运营团队完成它时,它可能仍处于待处理状态;继续轮询订单状态以获得最终结果。
BALANCE
用户余额
以 THB 中的十进制字符串形式返回可用的会员钱包余额。
https://wowlike-th.com/api/v2action=balance| 范围 | 类型 | 描述 |
|---|---|---|
| key | string | 您的私人 WOWLIKE 成员 API 密钥。 |
| action | "balance" | 必须是字面值平衡。 |
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"{
"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 | 服务或当前订单状态不允许取消。 |
PHP
完整的 PHP 示例
这个小型客户端保持启用 TLS 验证,使用连接和请求超时,并在 API 返回错误时抛出。
<?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} | 阅读一份订单 |
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 个字符的唯一幂等密钥。重复使用它会返回原始订单,而不是收取两次费用。
成功信封
{
"success": true,
"data": {},
"error": null
}需要帮助验证集成或意外响应吗? 联系支持人员