API Integration & Developer Documentation
Step-by-step guides for integrating License Key verification APIs and deploying bots on VPS
6 Quy Tắc Bảo Mật Bắt Buộc (Protocol 2.2.2)
Tất cả sản phẩm phát hành trên MrMMO phải tuân thủ nghiêm ngặt:
Tuyệt đối không hardcode LicenseKey vào source code hoặc đóng gói vào file thực thi (.exe / .py). Quy trình Zero-Config loại bỏ hoàn toàn việc phân phối key vĩnh viễn trong file chạy.
Sau bootstrap, DeviceToken phải được mã hóa qua Windows DPAPI (CryptProtectData), macOS Keychain, hoặc Linux Secret Service. Không lưu plaintext vào file cấu hình.
SessionToken (JWT/HMAC-SHA256) có thời hạn ngắn (15–30 phút). Chỉ lưu trong bộ nhớ tạm (volatile RAM), tuyệt đối không bao giờ ghi xuống đĩa cứng.
Vé kích hoạt (act_...) đi kèm file download bundle có hạn tối đa 24 giờ. Sau khi gọi bootstrap thành công, file activation.json phải được client xóa vĩnh viễn.
Mọi request bootstrap, refresh, heartbeat đều phải gửi đúng canonical ToolApp ID (CUID) và tool_version (SemVer chuẩn). Sai lệch ID sẽ bị server từ chối ngay lập tức.
Khi khách hàng hoàn tiền (refund), hủy thuê bao hoặc reset HWID trên web, toàn bộ phiên làm việc của thiết bị đó sẽ lập tức bị khóa tại heartbeat tiếp theo.
Vòng Đời Bản Quyền Chuẩn (3 Giai Đoạn)
Quy trình vận hành theo hợp đồng Protocol 2.2.2 giữa Client và Server:
Khách mua tool ➔ Server tự động nhúng .mrmmo/activation.json vào file ZIP tải về ➔ Người dùng giải nén và mở tool ➔ Client gửi request:
Server xác thực vé kích hoạt một lần, trả về device_token (Client lưu vào DPAPI/Keychain) và session_token (lưu RAM). File activation.json bị xóa.
Người dùng mở lại tool ngày hôm sau ➔ Client nạp device_token từ OS Secure Storage ➔ Tự động gửi request cấp phiên mới:
Server đối soát thiết bị và gói thuê bao, trả về session_token mới. Người dùng hoàn toàn không phải nhập key lại.
Client định kỳ gửi heartbeat theo chu kỳ động từ server (thông số heartbeat_interval trả về, ví dụ 120 giây) kèm session_token trong JSON body (không dùng header Authorization) để duy trì trạng thái:
Nếu bản quyền bị hủy, refund hoặc hết hạn, server trả về mã lỗi canonical (HTTP 403), client lập tức ngắt toàn bộ tác vụ automation.
Tích Hợp Khuyến Nghị: MrMMO Python Protected SDK V1
Tránh tự viết lại HTTP client thủ công (dễ bị bẻ khóa bytecode Python). Hãy sử dụng SDK bảo vệ lõi Native Rust chính thức của MrMMO:
my_automation_tool/
├── main.py
├── requirements.txt
└── mrmmo_sdk/
├── __init__.py
├── __init__.pyi
└── mrmmo_core.pyd # Binary Rust native bảo vệ license & DPAPI trên WindowsKhông nên chỉ kiểm tra if not runtime.is_authorized(): sys.exit() vì attacker có thể patch bytecode Python để bỏ qua lệnh if. Thay vào đó, hãy chuyển logic giải mã payload hoặc thuật toán trọng tâm của tool vào hàm native runtime.protected_transform(...). Lõi Rust sẽ chặn đứng thực thi nếu trạng thái bản quyền không phải là ACTIVE.
Đặc Tả REST API Protocol 2.2.2 (Dành Cho Custom Client)
Dành cho nhà phát triển muốn xây dựng Custom Client bằng C++, C#, Go hoặc NodeJS:
Cấu hình domain chính thức: https://mrmmo.com (hoặc lấy động từ file activation.json: apiBaseUrl).
Kích hoạt thiết bị lần đầu bằng vé một lần (Zero-Config).
{
"ticket": "act_8a2d1f04b2c9e71a9540de83c1b504f2f3e4d5c6b7a890123456789abcdef012",
"hwid": "5f4dcc3b5aa765d61d8327deb882cf992b9599b421a7f1a5120157ac04acadc5",
"tool_id": "cmtpwjdmo0000j6n72lcpnevw",
"tool_version": "1.0.0"
}Cấp phiên làm việc mới cho thiết bị đã đăng ký (khởi động tool lần sau).
{
"device_token": "dev_c91b504f2f3e4d5c6b7a890123456789abcdef0128a2d1f04b2c9e71a9540de83",
"hwid": "5f4dcc3b5aa765d61d8327deb882cf992b9599b421a7f1a5120157ac04acadc5",
"tool_id": "cmtpwjdmo0000j6n72lcpnevw",
"tool_version": "1.0.0"
}Duy trì phiên làm việc trong khi tool đang chạy (chu kỳ động theo heartbeat_interval từ server, ví dụ 120 giây).
{
"session_token": "eyJhbGciOiJIUzI1NiIsInZlcnNpb24iOjIsInR5cCI...",
"hwid": "5f4dcc3b5aa765d61d8327deb882cf992b9599b421a7f1a5120157ac04acadc5",
"tool_id": "cmtpwjdmo0000j6n72lcpnevw",
"tool_version": "1.0.0"
}Xác thực key thủ công trực tiếp hoặc tái liên kết thiết bị khi người dùng nhập key trên UI.
{
"key": "MRMMO-VIP-A1B2C3-D4E5F6",
"hwid": "5f4dcc3b5aa765d61d8327deb882cf992b9599b421a7f1a5120157ac04acadc5",
"tool_id": "cmtpwjdmo0000j6n72lcpnevw",
"tool_version": "1.0.0"
}Mục này chỉ dành riêng cho lập trình viên kiểm thử kết nối trên máy tính cục bộ trong quá trình phát triển (Local Testnet):