API nhà cung cấp tương thích với PerfectPanel

Kết nối bảng điều khiển của bạn với WOWLIKE

Tài liệu tham khảo sẵn sàng sản xuất để nhập dịch vụ, đặt hàng, theo dõi việc giao hàng, yêu cầu hủy và đọc số dư THB của bạn.

Phương thức HTTP
POST
điểm cuối API
https://wowlike-th.com/api/v2
Bí danh tương thích
https://wowlike-th.com/api/v1
Định dạng phản hồi
JSON

Bắt đầu

Kết nối theo ba bước

Sử dụng cùng một URL và khóa API trong PerfectPanel hoặc bất kỳ ứng dụng khách nào hỗ trợ định dạng API bảng điều khiển SMM phổ biến.

  1. 1

    Tạo chìa khóa của bạn

    Tạo một tài khoản, sau đó tạo khóa API từ Hồ sơ. Khóa đầy đủ chỉ được hiển thị một lần.

  2. 2

    Định cấu hình bảng điều khiển của bạn

    Thêm điểm cuối API làm URL nhà cung cấp trong PerfectPanel và dán khóa API WOWLIKE của bạn.

  3. 3

    Chạy thử nghiệm khói

    Yêu cầu số dư của bạn, sau đó nhập dịch vụ. Phản hồi cân bằng JSON xác nhận kết nối.

Sử dụng https://wowlike-th.com/api/v2 làm điểm cuối chính. Nếu bảng điều khiển nhà cung cấp kết nối thông qua API phiên bản 1, hãy sử dụng https://wowlike-th.com/api/v1. Cả hai điểm cuối đều sử dụng cùng một khóa API và trả về cùng một dữ liệu dịch vụ.

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"

Bảo vệ

Xác thực mọi yêu cầu

Gửi khóa API của bạn trong trường biểu mẫu có tên khóa. Khóa xác định tài khoản thành viên, giá cả, ví và đơn hàng được sử dụng theo yêu cầu.

Vòng đời của khóa

Một khóa API có thể hoạt động cho mỗi tài khoản. Xoay hoặc thu hồi nó ngay lập tức làm mất hiệu lực của khóa trước đó. WOWLIKE chỉ lưu trữ hàm băm mật mã.

Giới hạn tỷ lệ

Hành động đọc cho phép 120 yêu cầu mỗi phút. Hành động thêm và hủy cho phép 30 yêu cầu mỗi phút. Giới hạn được áp dụng cho mỗi thành viên và IP nguồn.

Giữ chìa khóa riêng tư. Lưu trữ nó trong biến môi trường hoặc bí mật phía máy chủ. Không bao giờ đặt nó trong JavaScript của trình duyệt, kho lưu trữ công cộng, ảnh chụp màn hình hoặc thông báo hỗ trợ.

SERVICES

Danh sách dịch vụ

Nhập các dịch vụ và giá dành riêng cho thành viên hiện có sẵn cho tài khoản này.

POSThttps://wowlike-th.com/api/v2action=services
tham sốKiểuSự miêu tả
keystringKhóa API thành viên WOWLIKE riêng tư của bạn.
action"services"Phải là dịch vụ có giá trị theo nghĩa đen.
bash
curl -X POST "https://wowlike-th.com/api/v2" \
  -d "key=$WOWLIKE_API_KEY" \
  -d "action=services"

Phản hồi mẫu

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 ประเทศไทย"
  }
]

service là ID cố định được WOWLIKE cấp và không phụ thuộc vào ID nhà cung cấp. danh mục và danh mụcEn chứa nhóm dịch vụ; tỷ lệ, tối thiểu và tối đa là các số JSON, trong khi nguồn cấp dữ liệu nhỏ giọt, nạp lại và hủy công bố các khả năng dịch vụ hiệu quả.

Mọi yêu cầu đều trả về giá thành viên mới nhất, giới hạn và danh sách dịch vụ có sẵn mà không cần sử dụng bộ nhớ đệm phản hồi. Các hệ thống hạ nguồn có thể thăm dò hành động dịch vụ để đồng bộ hóa dữ liệu; tần số hỏi vòng và việc điều khiển đồng bộ hóa có được bật hay không tùy thuộc vào bộ điều hợp xuôi dòng.

ADD

Thêm đơn hàng

Tạo đơn đặt hàng cho một dịch vụ đã xuất bản và ghi nợ vào ví thành viên bằng cách sử dụng mức giá hiện tại dành riêng cho thành viên.

POSThttps://wowlike-th.com/api/v2action=add
tham sốKiểuSự miêu tả
keystringKhóa API thành viên WOWLIKE riêng tư của bạn.
action"add"Phải là giá trị gia tăng theo nghĩa đen.
serviceintegerID dịch vụ dạng số cố định được hành động dịch vụ trả về.
linkURLURL mục tiêu công khai cho trang, bài đăng, hồ sơ hoặc phương tiện.
quantityintegerCần thiết cho các dịch vụ mặc định. Số tiền được yêu cầu phải nằm trong mức tối thiểu và tối đa của dịch vụ.
commentsstringCần thiết cho dịch vụ Nhận xét tùy chỉnh. Gửi một bình luận trên mỗi dòng; số lượng được tính từ các dòng không trống.

Dịch vụ mặc định

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"

Dịch vụ bình luận tùy chỉnh

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=Bình luận đầu tiên\nBình luận thứ hai'
json
{
  "order": 9001
}

Đối với Nhận xét tùy chỉnh, bỏ qua số lượng và gửi nhận xét dưới dạng văn bản được phân tách bằng dòng mới. WOWLIKE cắt bớt các dòng trống và sử dụng số dòng còn lại làm số lượng đơn hàng.

Chỉ thử lại sau khi vận chuyển thất bại khi bạn chắc chắn rằng không có số đơn hàng nào được trả lại. Đối với các hoạt động tích hợp yêu cầu số lần thử bình thường được đảm bảo, hãy sử dụng điểm cuối thứ tự REST.

STATUS

Trạng thái đơn hàng

Đọc một đơn hàng hoặc tối đa 100 đơn hàng thuộc về chủ sở hữu khóa API.

POSThttps://wowlike-th.com/api/v2action=status
tham sốKiểuSự miêu tả
keystringKhóa API thành viên WOWLIKE riêng tư của bạn.
action"status"Phải là trạng thái giá trị theo nghĩa đen.
orderintegerMột số đơn đặt hàng WOWLike. Không gửi cùng với đơn đặt hàng.
ordersstringSố đơn hàng được phân tách bằng dấu phẩy, tối đa 100. Không gửi cùng với đơn hàng.

Gửi đơn đặt hàng hoặc đơn đặt hàng, không bao giờ cả hai. Phản hồi nhiều đơn hàng được khóa theo số đơn hàng được yêu cầu.

bash
# Đơn hàng duy nhất
curl -X POST "https://wowlike-th.com/api/v2" \
  -d "key=$WOWLIKE_API_KEY" -d "action=status" -d "order=9001"

# Nhiều đơn hàng
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"}
}

Giá trị trạng thái

Trạng tháiSự miêu tả
PendingĐã nhận và đang chờ gửi hoặc xử lý.
ProcessingĐã được nhà cung cấp gửi và chuẩn bị.
In progressViệc giao hàng hiện đang được tiến hành.
CompletedĐã giao đủ số lượng yêu cầu.
PartialMột phần của đơn đặt hàng đã được giao và phần còn lại chưa được giao đã được hoàn lại.
CanceledĐơn đặt hàng đã bị hủy hoặc không thành công và số dư áp dụng đã được hoàn trả.

CANCEL

Hủy đơn hàng

Yêu cầu hủy tối đa 100 đơn hàng đang hoạt động có dịch vụ quảng cáo hủy: đúng.

POSThttps://wowlike-th.com/api/v2action=cancel
tham sốKiểuSự miêu tả
keystringKhóa API thành viên WOWLIKE riêng tư của bạn.
action"cancel"Phải là giá trị bằng chữ bị hủy bỏ.
ordersstringSố đơn đặt hàng được phân tách bằng dấu phẩy để hủy, tối đa 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 nghĩa là yêu cầu hủy đã được chấp nhận. Nó có thể vẫn đang chờ xử lý trong khi nhà cung cấp thượng nguồn hoặc nhóm vận hành WOWLIKE hoàn thành nó; tiếp tục trạng thái thứ tự bỏ phiếu cho kết quả cuối cùng.

BALANCE

Số dư người dùng

Trả về số dư ví thành viên khả dụng dưới dạng chuỗi thập phân bằng THB.

POSThttps://wowlike-th.com/api/v2action=balance
tham sốKiểuSự miêu tả
keystringKhóa API thành viên WOWLIKE riêng tư của bạn.
action"balance"Phải là số dư giá trị theo nghĩa đen.
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"
}

Xử lý lỗi

Lỗi sử dụng hình dạng JSON có thể dự đoán được

Các phản hồi tương thích với PerfectPanel trả về trường lỗi thay vì tải trọng thành công. Hành động hàng loạt báo cáo lỗi trên đơn hàng bị ảnh hưởng để các mặt hàng khác vẫn có thể thành công.

LỗiNghĩa
Invalid API keyKhóa bị thiếu, không đúng định dạng, bị thu hồi hoặc không khớp với thành viên đang hoạt động.
Too many requestsGiới hạn tốc độ đọc hoặc đột biến hiện tại đã bị vượt quá.
Invalid request parametersMột hành động hoặc một trong các tham số bắt buộc của nó bị thiếu hoặc không đúng định dạng.
Service not foundID dịch vụ công cộng không tồn tại hoặc không có sẵn.
Incorrect order IDĐơn hàng không tồn tại hoặc thuộc về thành viên khác.
Insufficient balanceVí không có đủ số dư THB khả dụng.
Invalid quantitySố lượng nằm ngoài mức tối thiểu hoặc tối đa của dịch vụ.
Error calling providerDịch vụ hoặc trạng thái đơn hàng hiện tại không cho phép hủy.
API tuân theo hợp đồng lỗi MeeLike: khóa không hợp lệ hoặc lỗi kinh doanh liên quan đến đơn hàng trả về HTTP 200 kèm theo trường lỗi, xác thực yêu cầu trả về HTTP 400 kèm theo trạng thái, thông báo, dấu thời gian và đường dẫn, các phương thức không được hỗ trợ trả về HTTP 404 và OPTIONS trả về HTTP 204.

PHP

Hoàn thành ví dụ PHP

Ứng dụng khách nhỏ này luôn bật xác minh TLS, sử dụng thời gian chờ kết nối và yêu cầu cũng như gửi lại khi API trả về lỗi.

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

API REST nâng cao

Sử dụng giao diện REST để tích hợp máy chủ tùy chỉnh được hưởng lợi từ mã trạng thái HTTP, đường bao phản hồi nhất quán và tạo đơn hàng bình thường.

Phương phápĐiểm cuốiMục đích
GET/api/v1/member/servicesLiệt kê các dịch vụ hiện có
GET/api/v1/member/balanceĐọc số dư ví
POST/api/v1/member/ordersTạo một trật tự bình thường
GET/api/v1/member/orders/{orderNumber}Đọc một đơn hàng
bash
curl "https://wowlike-th.com/api/v1/member/services?locale=vi" \
  -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}'

Xác thực mang

Gửi cùng một khóa thành viên trong Ủy quyền: Bearer <key>. Điểm cuối REST trả về HTTP 401, 403, 422 hoặc 429 khi có thể.

Thử lại an toàn

Mọi yêu cầu đặt hàng REST phải bao gồm một Khóa bình thường duy nhất có tối đa 200 ký tự. Việc sử dụng lại nó sẽ trả về thứ tự ban đầu thay vì tính phí hai lần.

phong bì thành công

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

Cần trợ giúp xác thực tích hợp hoặc phản hồi không mong muốn? Liên hệ hỗ trợ