Skip to main content

Đặc Tả Nghiệp Vụ: Minigame Vòng Quay May Mắn (Lucky Spin)

Ngày cập nhật: 20/06/2026
Nguồn dữ liệu: Review chính sách App - Minigame Vòng quay (Lucky Spin).csv

Minigame Vòng quay may mắn (Lucky Spin) là công cụ Gamification (Game hóa) giúp tăng tỷ lệ giữ chân khách hàng (User Retention), kích thích mở App hàng ngày và chuyển đổi người dùng thành lượt khách đến Spa trải nghiệm dịch vụ.

Tuy nhiên, đây là tính năng dễ bị trục lợi nhất nếu không được thiết lập các cơ chế bảo mật và giới hạn ngân sách chặt chẽ. Dưới đây là phân tích chi tiết lỗ hổng, giải pháp chống gian lận (Anti-Fraud) cùng đặc tả kỹ thuật chi tiết dành cho team lập trình.


I. Phân Tích Lỗ Hổng & Giải Pháp Chống Trục Lợi

1. Trục lợi bằng tài khoản rác (Spam / Clone Account)

  • Rủi ro: Khách hàng tạo hàng chục tài khoản ảo trên cùng một thiết bị di động để quay lấy điểm thưởng miễn phí, sau đó tìm cách chuyển dồn điểm về tài khoản chính.

[!WARNING]
Giải pháp kỹ thuật (Chống gian lận thiết bị):

  • Khóa lượt quay theo Device ID: Một thiết bị vật lý (Device ID) chỉ được phép sử dụng tối đa 1 hoặc 2 tài khoản để quay thưởng mỗi ngày.
  • Điều kiện người chơi:
    • Yêu cầu tài khoản mới phải cập nhật đầy đủ hồ sơ cá nhân (Ngày sinh, Email) mới được mở tính năng quay thưởng.
    • Hoặc chỉ những tài khoản active (đã từng phát sinh ít nhất 1 giao dịch thực tế tại Spa) mới được nhận lượt quay miễn phí hàng ngày.

2. Rủi ro vỡ ngân sách do tỷ lệ trúng giải lớn quá cao

  • Rủi ro: Nếu phân chia tỷ lệ trúng thưởng đều nhau (ví dụ vòng quay 8 ô, mỗi ô 12.5%), khách hàng sẽ trúng các giải thưởng lớn quá dễ dàng, gây thiệt hại tài chính.

[!CAUTION]
Giải pháp kỹ thuật (Budget Control & Weighted Probability):

  • Thuật toán tỷ trọng (Weighted Probability): Team Tech bắt buộc phải cấu hình phân hệ nhập tỷ lệ trúng thưởng chi tiết (%) cho từng ô trên trang quản trị CMS. Ví dụ: Ô 10 GPoint (Tỷ lệ 50%), Ô Lời chúc (30%), Ô 500 GPoint (Tỷ lệ chỉ 0.1%).
  • Giới hạn kho giải (Stock Limit): Cho phép Admin thiết lập số lượng giải thưởng tối đa cho từng ô (ví dụ: giải 1.000 GPoint giới hạn tối đa 2 giải/tháng). Khi số lượng giải lớn trong kho đã hết, hệ thống tự động điều hướng kết quả trúng thưởng của ô đó sang ô mặc định khác (ví dụ ô "Chúc bạn may mắn lần sau").

3. Khách hàng tích trữ điểm thưởng mà không sử dụng dịch vụ

  • Rủi ro: Khách hàng quay trúng lượng điểm lớn nhưng tích trữ trong ví mà không đến chi nhánh trải nghiệm, không tạo ra doanh thu thực tế.

[!TIP]
Giải pháp nghiệp vụ (Cơ chế FOMO):

  • Hạn dùng điểm thưởng siêu ngắn: Điểm trúng thưởng từ Minigame không có hạn dùng 1 năm như điểm mua. Cục điểm này bắt buộc set hạn dùng ngắn (ví dụ: 7 ngày hoặc 14 ngày).
  • Push Notification đẩy số: Gửi thông báo kèm lời nhắc hành động ngay sau khi trúng: “Bạn vừa trúng 100 GPoint, hãy đến chi nhánh Quận 2 ngay trong tuần này để thư giãn trước khi điểm hết hạn nhé!”.

II. Đặc Tả Chi Tiết Yêu Cầu Thiết Kế Hệ Thống

1. CMS Quản Trị Hệ Thống (Backend Control)

  • Bật/Tắt Module: Cho phép Admin bật hoặc tắt hiển thị Popup Vòng quay may mắn trên ứng dụng di động.
  • Cấu hình vòng quay: Cấu hình linh hoạt số lượng ô (Slices) của vòng quay (N ô tam giác).
  • Quản lý giải thưởng: Đối với mỗi ô, Admin có thể cấu hình:
    • Tên giải thưởng.
    • Loại giải thưởng (Cộng Point hoặc Tặng Voucher).
    • Tỷ lệ trúng thưởng (%).
    • Số lượng giải thưởng tối đa trong kho (Stock).

2. Logic Lượt Quay (Spins Logic)

  • Lượt quay miễn phí hàng ngày (Daily Free Spin): Mỗi tài khoản hợp lệ nhận 01 lượt quay miễn phí mỗi ngày, tự động reset vào lúc 00:00.
  • Cơ chế chống spam: Kiểm tra tính trùng lặp của mã định danh thiết bị (Device ID) để chặn hành vi đăng xuất đăng nhập tài khoản clone trên cùng 1 điện thoại để quay nhiều lần.

3. Giao Diện Người Dùng (Mobile App UI/UX)

  • Popup mở ứng dụng: Tự động hiển thị màn hình Lucky Spin dưới dạng Popup ngay sau khi khách hàng đăng nhập/mở ứng dụng lần đầu trong ngày (nếu CMS bật).
  • Vận hành an toàn (Server-side Calculation):
    • Hiệu ứng vòng quay mượt mà trên ứng dụng.
    • Quy tắc quan trọng: Ngay khi người dùng nhấn nút "Quay", ứng dụng phải gửi request lên Server và Server sẽ tính toán kết quả trước, sau đó trả về cho client. Vòng quay trên ứng dụng sẽ xoay và dừng lại đúng ô kết quả mà Server đã tính toán.
    • Tuyệt đối không chạy hàm random kết quả ở phía Client App để tránh bị can thiệp và hack kết quả bằng các công cụ can thiệp phần mềm.

4. Xử Lý Phần Thưởng (Reward Handling)

  • Nếu trúng thưởng GPoint:
    • API tự động cộng số điểm này vào ví GPoint của tài khoản.
    • Áp đặt thời hạn hết hạn ngắn từ 7-14 ngày.
    • Ghi nhận lịch sử giao dịch rõ ràng tại tab Lịch sử điểm.
  • Nếu trúng thưởng Voucher:
    • API tự động tạo và đẩy mã Voucher tương ứng vào tab Quà tặng trong mục Voucher của user.
  • Hệ thống thông báo (Notification Center):
    • Gửi Push Notification lập tức đến điện thoại người dùng.
    • Đồng thời lưu trữ 1 tin nhắn thông báo vào mục Chuông thông báo (Notification Center) ở góc phải màn hình app:

      “Chúc mừng bạn đã quay trúng [Tên phần thưởng]! Kiểm tra ngay trong mục Quà tặng / Lịch sử điểm nhé!”