1. Tạo key
Admin tạo key trong dashboard và cung cấp cho người dùng trong app của bạn.
Trang này mô tả đúng hành vi hiện tại của hệ thống verify. Dev chỉ cần gọi POST /api/verify, gửi key, deviceId và gameName để kiểm tra key hợp lệ.
Admin tạo key trong dashboard và cung cấp cho người dùng trong app của bạn.
App cần tạo một deviceId ổn định cho mỗi thiết bị để khóa key đúng máy.
Gửi key, deviceId và gameName mỗi lần app khởi động hoặc trước khi mở tính năng VIP.
Nếu status = OK thì cho truy cập. Nếu status = ERROR thì chặn và hiển thị thông báo.
Thông số request cần gửi từ app
URL
https://cyperdecode.click/api/verify
Body
Lưu ý quan trọng
Nhiều lỗi validate trả về HTTP 200 nhưng status: "ERROR". App phải đọc JSON response, không được chỉ check response.ok.
Mẫu payload để test nhanh
{
"key": "ABCD-EFGH-IJKL-MNOP",
"deviceId": "windows-7f3b0c0a-9a21-4be3-a221-4ef11f9a8421",
"gameName": "My App"
}{
"status": "OK",
"message": "Xác thực thành công",
"timeRemaining": "30 ngày 5 giờ",
"user": "VIP User",
"gameName": "My App"
}{
"status": "ERROR",
"message": "Key đã được sử dụng trên thiết bị khác"
}curl -X POST "https://cyperdecode.click/api/verify" \
-H "Content-Type: application/json" \
-d '{
"key": "ABCD-EFGH-IJKL-MNOP",
"deviceId": "windows-7f3b0c0a-9a21-4be3-a221-4ef11f9a8421",
"gameName": "My App"
}'async function verifyKey({ key, deviceId, gameName }) {
const response = await fetch("https://cyperdecode.click/api/verify", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ key, deviceId, gameName })
});
const data = await response.json();
if (data.status !== "OK") {
throw new Error(data.message || "Verify failed");
}
return data;
}Gợi ý xử lý trong app
Nếu lỗi là key sai, hết hạn, sai game hoặc sai device thì chặn tính năng VIP ngay. Nếu lỗi là không lấy được deviceId thì yêu cầu user cấp lại quyền hoặc khởi động lại app.
Integration checklist