ขายสคริปต์/ปลั๊กอิน/บอท ไม่ให้โดนแชร์ต่อ

อ่าน 7 นาที

วิธีขายสคริปต์ ปลั๊กอิน หรือบอท แบบกันการแชร์คีย์: จำกัดที่นั่งด้วย maxActivations + device fingerprint, heartbeat ยึดที่นั่งคืน และให้ลูกค้าย้ายเครื่องเองที่ /manage เพื่อลดงานซัพพอร์ต

สคริปต์ ปลั๊กอิน และบอท เป็นสินค้าที่ “ก๊อปง่ายที่สุด” — ไฟล์เดียวส่งต่อในกลุ่มไลน์ ได้ทั้งร้าน ถ้าคุณขายของพวกนี้ การมีแค่ “คีย์” ไม่พอ ต้องผูกคีย์กับเครื่องและคุม จำนวนที่นั่งให้รัดกุม บทความนี้สรุปชุดเครื่องมือที่ใช้ได้จริง

1. จำกัดที่นั่งด้วย max_activations + fingerprint

ตั้ง max_activations ใน policy ตามจำนวนเครื่องที่ลูกค้าควรใช้ได้ (เช่น 1 หรือ 2) แล้วให้แอป/สคริปต์ส่ง fingerprint ของเครื่องตอน activate เครื่องใหม่ที่เกินโควตาจะได้ SEAT_LIMIT_REACHED — คีย์ที่หลุดไปในกลุ่มจึงเปิดใช้ ต่อไม่ได้ เพราะที่นั่งเต็มแล้ว

JavaScript (keythai-sdk)
import { KeyThaiClient } from "keythai";

const client = new KeyThaiClient({ apiKey: "kt_live_xxxxxxxxxxxx" });
const key = "KEYT-AB12-3C4D-5E6F-7G8H-9J0K";

// fingerprint เดิม → activate ซ้ำไม่กินที่นั่งเพิ่ม (idempotent)
const res = await client.activate(key, { fingerprint, platform: "windows" });
console.log(res.machine_count, "/", res.max_activations, "ที่นั่ง");
// เครื่องที่ 4 (เกิน max_activations) จะได้ error SEAT_LIMIT_REACHED

เพราะ activate เป็น idempotent ต่อ fingerprint ลูกค้าตัวจริงเปิดสคริปต์ซ้ำบนเครื่องเดิม จะไม่กินที่นั่งเพิ่ม รายละเอียดการสร้าง fingerprint อ่านที่ Device Fingerprint

2. บอทรันตลอด? ใช้ heartbeat ยึดที่นั่งคืน

บอทเทรด/บอทเกมมักรันค้างไว้ ถ้าลูกค้าเอาไปรันหลายเครื่องพร้อมกันด้วยคีย์เดียว ให้ใช้ floating license + heartbeat แอปส่งสัญญาณ “ยังออนไลน์” เป็นรอบ ๆ เครื่องไหนเงียบเกิน 3 เท่าของรอบ เซิร์ฟเวอร์ยึดที่นั่งคืน ทำให้รันเกินจำนวนที่นั่งพร้อมกัน ไม่ได้ SDK มี startAutoHeartbeat ทำให้อัตโนมัติ:

Python (keythai)
from keythai import KeyThaiClient, get_device_fingerprint

client = KeyThaiClient("kt_live_xxxxxxxxxxxx")
fp = get_device_fingerprint()
client.activate(key, fp)  # ต้อง activate ให้มีที่นั่งก่อน

handle = client.start_auto_heartbeat(
    key, fp,
    interval_seconds=60,   # None = ใช้ค่า policy heartbeat_interval_seconds ไม่งั้น 300s
    on_beat=lambda res: print("beat ok"),
    on_error=lambda exc: print("heartbeat ล้มเหลว:", exc),
)
# ... แอปทำงาน ...
handle.stop()   # เรียกซ้ำได้ ไม่มีปัญหา

อ่านเชิงลึกที่ Auto-Heartbeat และทำความเข้าใจ floating license ที่ Floating License คืออะไร

3. ให้ลูกค้าย้ายเครื่องเอง = ลดงานซัพพอร์ต

ลูกค้าเปลี่ยนคอม/ลงวินโดวส์ใหม่แล้วที่นั่งเต็มเป็นเคสซัพพอร์ตที่เจอบ่อยที่สุด เปิด selfServiceReset ใน policy แล้วบอกลูกค้าให้ไปที่หน้า /manage กรอกคีย์เพื่อปลดเครื่องเก่าเอง — คุณตั้ง resetMaxPer30d จำกัดจำนวนครั้งต่อ 30 วันเพื่อกันคนหมุนคีย์แชร์กันได้ด้วย

ผลรวม: คีย์หลุดก็แชร์ต่อไม่ได้ (ที่นั่งเต็ม), รันหลายเครื่องพร้อมกันไม่ได้ (heartbeat), และคุณแทบไม่ต้องตอบแชทเรื่องย้ายเครื่อง ขั้นต่อไปถ้าอยากต่อยอดเป็น “ขายอัตโนมัติ” ลองอ่าน ขาย License อัตโนมัติด้วย PromptPay

พร้อมปกป้องซอฟต์แวร์ของคุณแล้วหรือยัง?

เริ่มต้นฟรี ไม่ต้องใช้บัตรเครดิต ออก license key แรกของคุณได้ในไม่กี่นาที