VISORA AI V3 — Growth, Security & Automation Ngày build: 2026-08-14 Nâng cấp chính Super Admin MFA: TOTP + recovery codes + Passkey/WebAuthn.
Quota theo gói Trial / Starter / Pro / Enterprise.
Subscription: thủ công hoặc Stripe Checkout; webhook cập nhật paid/past_due/canceled/expired.
Queue/Cron cho integration sync, báo cáo KPI email và outbound webhook.
Google OAuth 2.0: GA4 Data API + Search Console API ở quyền chỉ đọc.
Agoda / Booking.com / Google Business Profile / Tripadvisor: lịch kiểm tra/đồng bộ đọc an toàn theo credential và mode đã cấu hình.
Tenant backup/restore mã hóa, remap ID để không đụng tenant khác.
Public website VI/EN với /en, /en/guide, canonical + hreflang + sitemap song ngữ.
Báo cáo KPI XLSX có biểu đồ và gửi file đính kèm định kỳ.
Cập nhật từ V2 1.
Backup source + database. 2.
Giải nén PATCH đè lên source hiện tại.
Không xóa .env và storage/installed.lock. 3.
Truy cập /health.php và bảo đảm PDO MySQL/SQLite, cURL, OpenSSL, mbstring; ext-zip cần cho XLSX và tenant backup. 4.
Đăng nhập.
Migrator tự chạy migration 003_growth_security_automation. 5.
Super Admin vào /security để bật TOTP hoặc đăng ký Passkey nếu chính sách MFA đang bắt buộc. 6.
Vào /admin/billing cấu hình Stripe/Google OAuth/Cron nếu sử dụng. 7.
Vào /automation tạo lịch sync/report/webhook.
Cron Khuyến nghị CLI, chạy mỗi 5 phút: */5 * * * * /usr/bin/php /PATH_TO_VISORA/cron.php >/dev/null 2>&1 Nếu control panel chỉ hỗ trợ URL, cấu hình Cron Web Secret ở /admin/billing, sau đó gọi: https://YOUR-DOMAIN/cron.php?key=YOUR_SECRET Queue tự áp dụng chu kỳ tối thiểu theo gói, xử lý retry và trạng thái lỗi.
Stripe webhook Endpoint: https://YOUR-DOMAIN/webhooks/stripe Các event nên bật: checkout.session.completed customer.subscription.created customer.subscription.updated customer.subscription.deleted invoice.paid invoice.payment_failed Webhook secret (whsec_...) cấu hình ở /admin/billing.
Google OAuth Trong Google Cloud OAuth Client, thêm Authorized redirect URI: https://YOUR-DOMAIN/oauth/google/callback Sau đó nhập Client ID/Secret trong /admin/billing, và kết nối GA4/Search Console tại /integrations.
Passkey Passkey yêu cầu HTTPS và RP ID khớp hostname trong APP_URL.
Không đổi APP_URL sang hostname khác sau khi người dùng đã đăng ký Passkey nếu chưa có kế hoạch migrate credential.
Backup tenant Owner dùng /backup để xuất ZIP mã hóa theo APP_KEY.
Restore cần đúng APP_KEY đã tạo backup.
Restore không ghi đè users/password/passkey của tenant; dữ liệu nghiệp vụ được remap ID.