PerfectPanel 호환 제공자 API
WOWLIKE에 패널을 연결하세요
서비스 가져오기, 주문하기, 배송 추적, 취소 요청 및 THB 잔액 읽기를 위한 바로 제작 가능한 참조 자료입니다.
- HTTP 메서드
- POST
- API 엔드포인트
- https://wowlike-th.com/api/v2
- 호환되는 별칭
- https://wowlike-th.com/api/v1
- 응답 형식
- JSON
시작하기
3단계로 연결
PerfectPanel 또는 공통 SMM 패널 API 형식을 지원하는 클라이언트에서 동일한 API URL과 키를 사용합니다.
- 1
키 생성하기
계정을 생성한 다음 프로필에서 API 키를 생성하세요. 전체 키는 한 번만 표시됩니다.
- 2
패널 구성
PerfectPanel에서 공급자 URL로 API 엔드포인트를 추가하고 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" | 리터럴 값 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 ประเทศไทย"
}
]service는 WOWLIKE에서 할당한 영구 ID이며 공급자 ID에 의존하지 않습니다. Category 및 CategoryEn에는 서비스 그룹이 포함되어 있습니다. rate, min, max는 JSON 숫자이고, 드립피드, 리필, 게시 취소는 효과적인 서비스 기능입니다.
모든 요청은 응답 캐시를 사용하지 않고 최신 회원 가격, 한도 및 사용 가능한 서비스 목록을 반환합니다. 다운스트림 시스템은 서비스 작업을 폴링하여 데이터를 동기화할 수 있습니다. 폴링 빈도 및 동기화 제어 활성화 여부는 다운스트림 어댑터에 따라 다릅니다.
ADD
주문 추가
게시된 서비스에 대한 주문을 생성하고 현재 회원별 가격을 사용하여 회원 지갑에서 인출합니다.
https://wowlike-th.com/api/v2action=add| 매개변수 | 유형 | 설명 |
|---|---|---|
| key | string | 개인 WOWLIKE 회원 API 키입니다. |
| action | "add" | 리터럴 값 add여야 합니다. |
| service | integer | 서비스 작업에서 반환된 영구 숫자 서비스 ID. |
| link | URL | 페이지, 게시물, 프로필 또는 미디어에 대한 공개 대상 URL입니다. |
| quantity | integer | 기본 서비스에 필요합니다. 요청 금액은 서비스 최소 및 최대 금액 이내여야 합니다. |
| comments | string | Custom Comments 서비스에 필요합니다. 한 줄에 하나의 의견을 보내십시오. 수량은 비어 있지 않은 줄에서 계산됩니다. |
기본 서비스
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=First comment\nSecond comment'{
"order": 9001
}사용자 정의 댓글의 경우 수량을 생략하고 줄 바꿈으로 구분된 텍스트로 댓글을 보냅니다. WOWLIKE는 빈 줄을 자르고 남은 줄 수를 주문 수량으로 사용합니다.
반환된 주문 번호가 없다고 확신하는 경우에는 전송 실패 후에만 다시 시도하십시오. 보장된 멱등성 재시도가 필요한 통합의 경우 REST 주문 엔드포인트를 사용하세요.
STATUS
주문 상태
API 키 소유자에 속하는 하나의 주문 또는 최대 100개의 주문을 읽습니다.
https://wowlike-th.com/api/v2action=status| 매개변수 | 유형 | 설명 |
|---|---|---|
| key | string | 개인 WOWLIKE 회원 API 키입니다. |
| action | "status" | 리터럴 값 status여야 합니다. |
| order | integer | WOWLIKE 주문 번호 1개. 주문과 함께 보내지 마세요. |
| 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" | 리터럴 값 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"}}
]취소: 1은 취소 요청이 수락되었음을 의미합니다. 업스트림 공급자 또는 WOWLIKE 운영 팀이 완료하는 동안 보류 상태로 남아 있을 수 있습니다. 최종 결과에 대한 폴링 순서 상태를 계속합니다.
BALANCE
사용자 잔액
사용 가능한 회원 지갑 잔액을 THB로 십진수 문자열로 반환합니다.
https://wowlike-th.com/api/v2action=balance| 매개변수 | 유형 | 설명 |
|---|---|---|
| key | string | 개인 WOWLIKE 회원 API 키입니다. |
| action | "balance" | 리터럴 값 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
HTTP 상태 코드, 일관된 응답 봉투 및 멱등성 주문 생성의 이점을 누리는 맞춤형 서버 통합을 위해 REST 인터페이스를 사용하세요.
| 방법 | 엔드포인트 | 목적 |
|---|---|---|
| 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=ko" \
-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 authentication
Send the same member key in Authorization: Bearer <key>. REST endpoints return HTTP 401, 403, 422, or 429 when applicable.
안전한 재시도
모든 REST 주문 요청에는 최대 200자의 고유한 멱등성 키가 포함되어야 합니다. 재사용하면 두 번 청구하는 대신 원래 주문이 반환됩니다.
성공 봉투
{
"success": true,
"data": {},
"error": null
}통합을 확인하는 데 도움이 필요합니까? 예상치 못한 응답이 있습니까? 지원팀에 문의하세요.