สรุปประเด็นสำคัญ
รูปแบบคำขอของ SMM panel API v2 มาตรฐาน 6 action ตัวอย่างการตอบกลับ ข้อความแจ้งข้อผิดพลาด และขีดจำกัดคำขอ เขียนสำหรับรีเซลเลอร์
SMM panel API คือการเชื่อมต่อที่ส่งคำสั่งซื้อและตรวจสถานะโดยอัตโนมัติจาก panel อื่นหรือซอฟต์แวร์ของคุณเอง 1PANEL PLUS ใช้ SMM panel API v2 มาตรฐาน หากคุณมีโค้ดที่เชื่อมต่อกับ panel อื่นอยู่แล้ว แค่เปลี่ยนที่อยู่และ key ก็เชื่อมต่อได้ทันที API และเว็บไซต์ใช้บริการเดียวกัน ราคาต่อ 1,000 เท่ากัน และยอดเงินคงเหลือเดียวกัน
ใครใช้ SMM panel API
- รีเซลเลอร์: ลงบริการไว้ใน panel ของตัวเองและส่งต่อคำสั่งซื้อของลูกค้าอัตโนมัติ
- เอเจนซี: สั่งซื้อให้หลายช่องพร้อมกันตามเวลาที่กำหนด
- นักพัฒนา: สร้างสคริปต์ที่สั่งซื้อเมื่อไลฟ์เริ่มหรือเมื่ออัปโหลดวิดีโอใหม่
- ผู้ดูแลระบบ: รวมยอดเงินคงเหลือและสถานะคำสั่งซื้อไว้ในแดชบอร์ดของตัวเอง
รับ API key ได้อย่างไร
สร้างได้ที่หน้า API key ในแดชบอร์ดหลังการเติมเงินครั้งแรกเข้าบัญชีแล้ว key จะแสดงเพียงครั้งเดียวตอนสร้าง จึงควรคัดลอกทันทีและเก็บไว้ในที่ปลอดภัย เมื่อสร้าง key ใหม่ key เดิมจะใช้ไม่ได้ทันที หากคิดว่า key รั่วไหล ก็แค่สร้าง key ใหม่มาแทน
ส่งคำขอ API อย่างไร
ส่งทุกคำขอด้วย POST ไปยังที่อยู่เดียว https://1panelplus.com/api/v2 ใช้แบบที่สะดวก จะเป็นฟิลด์ฟอร์ม (application/x-www-form-urlencoded หรือ multipart) หรือเนื้อหา JSON (Content-Type: application/json) ก็ได้ และใส่ key และ action ในทุกคำขอ การตอบกลับทั้งหมดเป็น JSON
ตัวอย่างคำขอ (ฟิลด์ฟอร์ม): key=YOUR_API_KEY&action=balance
ตัวอย่างคำขอ (JSON): {"key": "YOUR_API_KEY", "action": "balance"}
| action | ค่าที่ส่ง | ค่าที่ได้กลับมา |
|---|---|---|
| services | ไม่มี | รายการบริการ |
| add | service, link, quantity หรือ comments | order (รหัสคำสั่งซื้อ) |
| status | order หนึ่งรายการ หรือ orders (สูงสุด 100 คั่นด้วยจุลภาค) | charge, start_count, status, remains, currency |
| refill | order | refill (รหัส Refill) |
| refill_status | refill | status |
| balance | ไม่มี | balance, currency |
- action
- services
- ค่าที่ส่ง
- ไม่มี
- ค่าที่ได้กลับมา
- รายการบริการ
- action
- add
- ค่าที่ส่ง
- service, link, quantity หรือ comments
- ค่าที่ได้กลับมา
- order (รหัสคำสั่งซื้อ)
- action
- status
- ค่าที่ส่ง
- order หนึ่งรายการ หรือ orders (สูงสุด 100 คั่นด้วยจุลภาค)
- ค่าที่ได้กลับมา
- charge, start_count, status, remains, currency
- action
- refill
- ค่าที่ส่ง
- order
- ค่าที่ได้กลับมา
- refill (รหัส Refill)
- action
- refill_status
- ค่าที่ส่ง
- refill
- ค่าที่ได้กลับมา
- status
- action
- balance
- ค่าที่ส่ง
- ไม่มี
- ค่าที่ได้กลับมา
- balance, currency
รับรายการบริการด้วย services อย่างไร
ส่ง action=services แล้วจะได้บริการทั้งหมดที่เปิดขายเป็นอาร์เรย์ แต่ละบริการมี service (รหัสบริการ), name, type, category, rate, min, max, refill และ cancel rate คือราคาต่อ 1,000 (USD) เมื่อ type เป็น Package จะเป็นราคาของหนึ่งแพ็กเกจ refill เป็น true สำหรับบริการที่มีระยะเวลา Refill และ cancel เป็น false เสมอ category มีชื่อแพลตฟอร์มและหมวดหมู่รวมกัน คุณจึงสร้างหมวดหมู่ใน panel ของตัวเองตามนั้นได้เลย
ตัวอย่างการตอบกลับ: [{"service": SERVICE_ID, "name": "ชื่อบริการ", "type": "Default", "category": "YouTube - ชื่อหมวดหมู่", "rate": "ราคาต่อ 1,000", "min": "จำนวนขั้นต่ำ", "max": "จำนวนสูงสุด", "refill": true, "cancel": false}]
ราคาและบริการอาจเปลี่ยนได้ สำหรับรีเซลเลอร์ ควรดึง services ใหม่ตามรอบเวลาที่กำหนด และปรับราคาและจำนวนขั้นต่ำสูงสุดใน panel ของคุณให้ตรงกันเสมอ
สั่งซื้อด้วย add อย่างไร
ส่ง action=add พร้อม service (รหัสบริการ), link (ลิงก์สาธารณะ) และ quantity แล้วคำสั่งซื้อจะถูกรับและหักค่าใช้จ่ายจากยอดเงินคงเหลือทันที order ในการตอบกลับคือรหัสคำสั่งซื้อ ให้บันทึกไว้และใช้กับ status และ refill คำสั่งซื้อสั่งได้จากบัญชีที่การเติมเงินครั้งแรกเข้าบัญชีแล้ว
- บริการทั่วไป: ส่ง service, link และ quantity
- บริการ Custom Comments: ส่ง comments แทน quantity บรรทัดละหนึ่งคอมเมนต์ สูงสุด 500 ตัวอักษรต่อบรรทัด และจำนวนบรรทัดคือจำนวนที่สั่ง
- บริการ Package: ไม่ต้องส่งจำนวน คำสั่งซื้อคิดเป็นหนึ่งแพ็กเกจ
ตัวอย่างคำขอ: key=YOUR_API_KEY&action=add&service=SERVICE_ID&link=https://www.youtube.com/watch?v=videoid&quantity=1000
ตัวอย่างการตอบกลับ: {"order": ORDER_ID}
ตรวจสถานะคำสั่งซื้อด้วย status อย่างไร
ส่ง action=status พร้อม order (รหัสคำสั่งซื้อหนึ่งรายการ) เพื่อดูสถานะของคำสั่งซื้อนั้น หรือส่ง orders พร้อมรหัสคำสั่งซื้อที่คั่นด้วยจุลภาคเพื่อตรวจได้สูงสุด 100 รายการพร้อมกัน หากดูแลคำสั่งซื้อจำนวนมาก การรวมเป็นกลุ่มด้วย orders ช่วยประหยัดจำนวนคำขอได้มาก
ตัวอย่างการตอบกลับ (รายการเดียว): {"charge": "ยอดที่เรียกเก็บ", "start_count": "ยอดเริ่มต้น", "status": "In progress", "remains": "จำนวนที่เหลือ", "currency": "USD"}
ตัวอย่างการตอบกลับ (หลายรายการ): {"ORDER_ID_1": {"charge": "...", "start_count": "...", "status": "Completed", "remains": "0", "currency": "USD"}, "ORDER_ID_2": {"error": "Incorrect order ID"}}
| ค่า status | ความหมาย |
|---|---|
| Pending | รับแล้วและรอเริ่ม หรือกำลังเข้าสู่การดำเนินการ |
| In progress | กำลังส่งยอด |
| Completed | ส่งยอดครบแล้ว |
| Partial | ส่งยอดได้บางส่วน และยอดเงินที่เหลือคืนเข้ายอดเงินคงเหลือแล้ว |
| Canceled | ดำเนินการไม่ได้ และเงินเต็มจำนวนคืนเข้ายอดเงินคงเหลือแล้ว |
- ค่า status
- Pending
- ความหมาย
- รับแล้วและรอเริ่ม หรือกำลังเข้าสู่การดำเนินการ
- ค่า status
- In progress
- ความหมาย
- กำลังส่งยอด
- ค่า status
- Completed
- ความหมาย
- ส่งยอดครบแล้ว
- ค่า status
- Partial
- ความหมาย
- ส่งยอดได้บางส่วน และยอดเงินที่เหลือคืนเข้ายอดเงินคงเหลือแล้ว
- ค่า status
- Canceled
- ความหมาย
- ดำเนินการไม่ได้ และเงินเต็มจำนวนคืนเข้ายอดเงินคงเหลือแล้ว
charge คือยอดที่ชำระหักด้วยยอดที่คืนแล้ว หลังคำสั่งซื้อที่สำเร็จบางส่วนหรือถูกยกเลิก คุณจึงเห็นยอดที่ใช้จริงได้ทันที สถานะคำสั่งซื้ออัปเดตอัตโนมัติประมาณทุก 1 นาที การเรียก status ทุกประมาณ 1 นาทีจึงเพียงพอ
ใช้ refill และ refill_status อย่างไร
ส่ง action=refill พร้อม order เพื่อขอ Refill แล้วจะได้ refill (รหัส Refill) กลับมา รับคำขอสำหรับคำสั่งซื้อที่เสร็จสมบูรณ์หรือสำเร็จบางส่วนของบริการที่มีระยะเวลา Refill ภายในระยะเวลา Refill ที่นับจากวันที่คำสั่งซื้อเสร็จ เมื่อไม่มี Refill ที่กำลังดำเนินการและผ่านไป 24 ชั่วโมงนับจากคำขอล่าสุด ส่ง action=refill_status พร้อม refill แล้วระบบจะบอกสถานะเป็น Pending, In progress, Completed หรือ Rejected
ตัวอย่างการตอบกลับ: {"refill": REFILL_ID} และ {"status": "Completed"}
กฎ Refill เหมือนกับบนเว็บไซต์ เงื่อนไขโดยละเอียดอยู่ใน อธิบายระยะเวลา Refill
ตรวจยอดเงินคงเหลือด้วย balance อย่างไร
ส่ง action=balance แล้วจะได้ยอดเงินคงเหลือปัจจุบันและสกุลเงิน (USD) สำหรับรีเซลเลอร์ ให้ตรวจยอดเงินคงเหลือก่อนส่งต่อคำสั่งซื้อ และตั้งการแจ้งเตือนเมื่อยอดต่ำกว่าจำนวนที่กำหนด เพื่อให้คำสั่งซื้อไหลต่อเนื่องไม่สะดุด
ตัวอย่างการตอบกลับ: {"balance": "ยอดเงินคงเหลือปัจจุบัน", "currency": "USD"}
ข้อความแจ้งข้อผิดพลาดของ API หมายถึงอะไร
ข้อผิดพลาดส่งกลับเป็น JSON ที่มีประโยคภาษาอังกฤษในฟิลด์ error แต่ละประโยคมีสาเหตุที่แน่นอน ซอฟต์แวร์ของคุณจึงเปรียบเทียบตามข้อความและจัดการได้ทันที
| ค่า error | ความหมาย |
|---|---|
| Invalid API key | ไม่มี key หรือ key ไม่ถูกต้อง |
| Too many requests | ส่งคำขอเกินขีดจำกัดต่อนาที ส่งใหม่อีกครั้งในอีกสักครู่ |
| Add funds first | สั่งซื้อได้หลังการเติมเงินครั้งแรกเข้าบัญชี |
| Incorrect service ID | ไม่ใช่รหัสของบริการที่เปิดขาย |
| Incorrect link | รูปแบบลิงก์ไม่ถูกต้อง |
| Quantity out of range | จำนวนอยู่นอกช่วงขั้นต่ำและสูงสุดของบริการ |
| Incorrect comments | บรรทัดคอมเมนต์ว่าง หรือมีบรรทัดที่ยาวเกิน 500 ตัวอักษร |
| Not enough funds on balance | ยอดเงินคงเหลือน้อยกว่าค่าคำสั่งซื้อ |
| Incorrect order ID | ไม่ใช่รหัสคำสั่งซื้อของบัญชีนี้ |
| Incorrect refill ID | ไม่ใช่รหัส Refill ของบัญชีนี้ |
| Incorrect action | ค่า action ไม่ใช่หนึ่งใน 6 action |
- ค่า error
- Invalid API key
- ความหมาย
- ไม่มี key หรือ key ไม่ถูกต้อง
- ค่า error
- Too many requests
- ความหมาย
- ส่งคำขอเกินขีดจำกัดต่อนาที ส่งใหม่อีกครั้งในอีกสักครู่
- ค่า error
- Add funds first
- ความหมาย
- สั่งซื้อได้หลังการเติมเงินครั้งแรกเข้าบัญชี
- ค่า error
- Incorrect service ID
- ความหมาย
- ไม่ใช่รหัสของบริการที่เปิดขาย
- ค่า error
- Incorrect link
- ความหมาย
- รูปแบบลิงก์ไม่ถูกต้อง
- ค่า error
- Quantity out of range
- ความหมาย
- จำนวนอยู่นอกช่วงขั้นต่ำและสูงสุดของบริการ
- ค่า error
- Incorrect comments
- ความหมาย
- บรรทัดคอมเมนต์ว่าง หรือมีบรรทัดที่ยาวเกิน 500 ตัวอักษร
- ค่า error
- Not enough funds on balance
- ความหมาย
- ยอดเงินคงเหลือน้อยกว่าค่าคำสั่งซื้อ
- ค่า error
- Incorrect order ID
- ความหมาย
- ไม่ใช่รหัสคำสั่งซื้อของบัญชีนี้
- ค่า error
- Incorrect refill ID
- ความหมาย
- ไม่ใช่รหัส Refill ของบัญชีนี้
- ค่า error
- Incorrect action
- ความหมาย
- ค่า action ไม่ใช่หนึ่งใน 6 action
คำขอ Refill อาจส่งกลับ Refill is not available for this service (บริการไม่มีระยะเวลา Refill), Order is not finished yet (คำสั่งซื้อยังไม่เสร็จ), Refill period has ended (เลยระยะเวลา Refill แล้ว) หรือ Refill already requested, try again later (มี Refill ที่กำลังดำเนินการ หรือยังไม่ครบ 24 ชั่วโมง)
ส่งคำขอ API ได้กี่ครั้ง
แต่ละ key ส่งคำขอได้สูงสุด 300 ครั้งต่อนาที รวมการตรวจสถานะเป็นกลุ่มละ 100 ด้วย orders และดึงรายการบริการใหม่เฉพาะเมื่อจำเป็น แล้วคุณจะมีโควตาเหลือเฟือ เช่น หากมีคำสั่งซื้อที่กำลังดำเนินการ 1,000 รายการ ใช้ 10 คำขอนาทีละครั้งก็ตรวจได้ทั้งหมด
รีเซลเลอร์กำหนดราคาขายอย่างไร
rate ที่ได้จาก API คือราคาต่อ 1,000 ของ 1PANEL PLUS และรีเซลเลอร์กำหนดราคาขายใน panel ของตัวเองได้เอง เช่น หากบวก 25% กับบริการที่มี rate $2.00 คุณจะขายที่ $2.50 ต่อ 1,000 เมื่อลูกค้าสั่ง 4,000 ยอดขายของคุณคือ $10.00 และ 1PANEL PLUS หัก $8.00 ราคาเหล่านี้เป็นตัวอย่างเพื่อแสดงการคำนวณ
ควรตั้งค่าการเชื่อมต่อ API ตามลำดับใด
- เติมยอดเงินและสร้าง API key ในแดชบอร์ด
- ตรวจ key และการเชื่อมต่อด้วย balance
- ดึงรายการบริการด้วย services แล้วลงไว้ใน panel ของคุณ
- ส่ง add หนึ่งครั้งด้วยจำนวนน้อยที่สุดและรับรหัสคำสั่งซื้อ
- ยืนยันว่าสถานะเปลี่ยนด้วย status แล้วจึงเปิดการสั่งซื้ออัตโนมัติ
ตัวอย่าง curl, PHP, Python และ Node.js พร้อมคำอธิบายฟิลด์ทั้งหมดอยู่ใน เอกสาร API และคำถามอื่นอยู่ในกลุ่ม API ของ คำถามที่พบบ่อย