TXAHUB logo

Tài liệu TXAHUB v6120

TXAHUB bởi Txahub Cập nhật: 29/11/2025

Bắt đầu

Tài liệu này sẽ hướng dẫn bạn qua quy trình cài đặt & cập nhật của TXAHUB, cũng như các tính năng nâng cao có sẵn cấu hình.

Hầu hết các tính năng bên trong TXAHUB đều tự giải thích và có văn bản trợ giúp gần chúng.

Các bước thực hiện rất đơn giản và không yêu cầu bất kỳ nhiệm vụ đặc biệt hay khác thường nào, chỉ cần có kiến thức tối thiểu về web.

Hỗ trợ chỉ được cung cấp thông qua Facebook hoặc email:

Mua sản phẩm: Bạn có thể tải TXAHUB miễn phí và mua key kích hoạt tại software.txahub.click/packages

License Key

TXAHUB yêu cầu license key để kích hoạt và sử dụng. License key được cung cấp sau khi bạn mua sản phẩm tại software.txahub.click/packages.

Định dạng License Key

TXAHUB có 2 loại license key với các tính năng và mức hỗ trợ khác nhau:

⚠️ Lưu ý: Các định dạng và mẫu license key dưới đây chỉ là ví dụ. License key thực tế của bạn sẽ được cung cấp sau khi mua sản phẩm và có định dạng tương tự nhưng khác nhau.

Loại License Định dạng Mẫu License Key (Ví dụ) Thời hạn Tính năng
TXAPRO txapro_[a-zA-Z0-9_]{20,} txapro_BZ3bWnQaxPzodh8aPW5YD Có thời hạn
(Cần gia hạn định kỳ) - mặc định 50 ngày
  • Tất cả tính năng cơ bản
  • Cập nhật phiên bản mới
  • Hỗ trợ kỹ thuật (Update only)
  • Auto-refresh license mỗi giờ
TXAVIP txavip_[a-zA-Z0-9_]{20,} txavip_SVwtnai1lL1NpEhdbECgE7Rb Trọn đời
(Không cần gia hạn)
  • Tất cả tính năng cơ bản
  • Cập nhật phiên bản mới
  • Hỗ trợ kỹ thuật đầy đủ
  • Hướng dẫn cài đặt chi tiết
  • Ưu tiên hỗ trợ
  • Không giới hạn thời gian

💡 Mẹo: Click vào nút Copy bên cạnh các mẫu license key ở trên để copy nhanh. Lưu ý: Đây chỉ là ví dụ, bạn cần sử dụng license key thực tế được cung cấp sau khi mua sản phẩm.

Chi tiết về các loại License

📦 TXAPRO License

⚠️ Lưu ý quan trọng về hỗ trợ: TXAPRO chỉ hỗ trợ cập nhật (update), KHÔNG hỗ trợ hướng dẫn cài đặt. Nếu bạn cần hỗ trợ cài đặt, vui lòng nâng cấp lên TXAVIP hoặc sử dụng dịch vụ cài đặt có phí.

Đặc điểm TXAPRO:

  • Thời hạn: Có thời hạn sử dụng, cần gia hạn định kỳ
  • Tính năng: Đầy đủ tính năng cơ bản của TXAHUB
  • Cập nhật: Được cập nhật lên các phiên bản mới nhất
  • Hỗ trợ kỹ thuật:
    • ✅ Hỗ trợ cập nhật (update) phiên bản mới
    • ✅ Hỗ trợ xử lý lỗi khi cập nhật
    • ✅ Hỗ trợ qua email và Facebook
    • KHÔNG hỗ trợ hướng dẫn cài đặt ban đầu
  • Auto-refresh: License tự động làm mới mỗi giờ
  • Gia hạn: Có thể gia hạn trực tiếp từ Admin Panel
  • API trao đổi tiền tệ: FreeCurrencyAPI (❌ Không hỗ trợ tỉ giá VND)

⭐ TXAVIP License

✅ Hỗ trợ đầy đủ: TXAVIP bao gồm hỗ trợ kỹ thuật đầy đủ, bao gồm cả hướng dẫn cài đặt chi tiết và hỗ trợ cập nhật.

Đặc điểm TXAVIP:

  • Thời hạn: Trọn đời, không cần gia hạn
  • Tính năng: Đầy đủ tính năng cơ bản của TXAHUB + các tính năng nâng cao:
    • ✅ Passkey Authentication (Đăng nhập không cần mật khẩu)
    • ✅ Google Drive Backup Passkey (Sao lưu tự động Passkey lên Google Drive)
    • ✅ File Extension (Quản lý và giới hạn định dạng file)
    • ✅ Cron Job (Quản lý tác vụ tự động)
    • ✅ Plugin (Hệ thống plugin mở rộng)
    • ✅ Tùy chỉnh gói plan (Customize plan packages)
    • ✅ Và nhiều tính năng nâng cao khác
  • API trao đổi tiền tệ: CurrencyLayer API (✅ Có hỗ trợ tỉ giá VND)
  • Cập nhật: Được cập nhật lên các phiên bản mới nhất
  • Hỗ trợ kỹ thuật đầy đủ:
    • ✅ Hỗ trợ hướng dẫn cài đặt chi tiết từ đầu
    • ✅ Hỗ trợ cập nhật (update) phiên bản mới
    • ✅ Hỗ trợ xử lý lỗi và troubleshooting
    • ✅ Hỗ trợ qua email và Facebook với ưu tiên
    • ✅ Hỗ trợ cấu hình nâng cao
  • Ưu tiên: Được ưu tiên xử lý khi liên hệ hỗ trợ
  • Không giới hạn: Không có thời hạn, sử dụng mãi mãi

📊 So sánh License

Tính năng / Hỗ trợ TXAPRO TXAVIP
Tất cả tính năng cơ bản
Cập nhật phiên bản mới
Hỗ trợ hướng dẫn cài đặt
Hỗ trợ cập nhật (update)
Hỗ trợ xử lý lỗi
Ưu tiên hỗ trợ
Thời hạn Có thời hạn Trọn đời
Gia hạn Cần gia hạn định kỳ Không cần
🔐 Passkey Authentication Không
💾 Google Drive Backup Passkey Không
📁 File Extension Không
⏰ Cron Job Không
🔌 Plugin System Không
🎨 Tùy chỉnh gói plan Không
💱 API trao đổi tiền tệ FreeCurrencyAPI
❌ Không hỗ trợ VND
CurrencyLayer API
✅ Có hỗ trợ VND

Kích hoạt License Key

  1. Đăng nhập vào Bảng Điều khiển Quản trị
  2. Điều hướng đến Cài đặt → Tab License
  3. Nhập license key của bạn vào trường License Key
  4. Nhấp Kích hoạt để xác thực license
  5. Hệ thống sẽ tự động kiểm tra và kích hoạt license của bạn

Lưu ý: License key sẽ được tự động liên kết với domain hiện tại của bạn. Nếu bạn cần thay đổi domain, vui lòng liên hệ hỗ trợ.

License Auto-Refresh

Đối với license TXAPRO, hệ thống sẽ tự động làm mới license mỗi giờ để đảm bảo thông tin luôn được cập nhật.

Gia hạn License

Nếu bạn sở hữu license TXAPRO và cần gia hạn:

  1. Điều hướng đến Bảng Điều khiển Quản trịCài đặt → Tab License
  2. Nhấp vào nút Gia hạn License
  3. Hệ thống sẽ chuyển hướng bạn đến trang thanh toán để gia hạn
  4. Sau khi thanh toán thành công, license sẽ tự động được cập nhật

Lưu ý: Nếu license đã hết hạn, bạn sẽ không thể truy cập vào các tính năng admin. Hãy đảm bảo gia hạn trước khi license hết hạn.

💡 Khi nào nên chọn TXAPRO hay TXAVIP?

Chọn TXAPRO nếu:

  • Bạn đã có kinh nghiệm cài đặt và cấu hình web
  • Bạn chỉ cần hỗ trợ cập nhật và xử lý lỗi
  • Bạn muốn tiết kiệm chi phí ban đầu
  • Bạn sẵn sàng tự cài đặt hoặc sử dụng dịch vụ cài đặt có phí

Chọn TXAVIP nếu:

  • Bạn là người mới, cần hướng dẫn cài đặt chi tiết
  • Bạn muốn hỗ trợ kỹ thuật đầy đủ và ưu tiên
  • Bạn muốn sử dụng lâu dài, không muốn lo gia hạn
  • Bạn muốn đầu tư một lần cho giải pháp trọn đời

💼 Dịch vụ cài đặt: Nếu bạn có TXAPRO và cần hỗ trợ cài đặt, bạn có thể sử dụng dịch vụ cài đặt có phí của chúng tôi. Hoặc nâng cấp lên TXAVIP để được hỗ trợ cài đặt miễn phí.

Yêu cầu

Đảm bảo máy chủ của bạn đáp ứng các yêu cầu đã chỉ định trước khi cài đặt hoặc mua.

PHP PHP 8.3 - 8.4
Phần mở rộng cURL, OpenSSL, mbstring, MySQLi
Cơ sở dữ liệu MySQL 5.7.3+ hoặc MariaDB tương đương
Máy chủ Apache hoặc Nginx

Những yêu cầu này giả định rằng bạn đang chạy trên một máy chủ tốt, cập nhật với các tiện ích mở rộng thiết yếu đã được cài đặt sẵn. Nếu không, có thể cần thêm các tiện ích mở rộng khác và một số thay đổi nhỏ.

Dịch vụ lắp đặt

Tôi cũng cung cấp dịch vụ cài đặt chất lượng với chi phí thấp nếu bạn không muốn bận tâm với quá trình cài đặt.

Cài đặt phần mềm - $35

  • Tải lên các tệp sản phẩm trên máy chủ của bạn (yêu cầu máy chủ được cấu hình và sẵn sàng hoạt động hoàn chỉnh).
  • Tạo và cấu hình cơ sở dữ liệu sẽ được sử dụng.
  • Cài đặt đầy đủ sản phẩm.

Bạn phải sở hữu một máy chủ với bảng điều khiển như Plesk, cPanel...v.v.

Cấu hình máy chủ & cài đặt phần mềm - $69

  • Thiết lập máy chủ mới (Hệ điều hành Ubuntu) trên một trong những nền tảng: Hetzner, Cloudways, Vultr, DigitalOcean
  • Thiết lập tên miền cho máy chủ
  • Cài đặt Chứng chỉ SSL miễn phí (Let's Encrypt)
  • Cài đặt Apache, MySQL với MySQLi, PHP
  • Cài đặt và cấu hình các mô-đun/tiện ích mở rộng cần thiết của PHP
  • Cài đặt đầy đủ sản phẩm

Cập nhật sản phẩm - $30

  • Sao lưu các tệp và cơ sở dữ liệu (theo yêu cầu).
  • Cập nhật sản phẩm lên phiên bản mới nhất (không quan trọng bạn đang ở phiên bản nào).
  • Cập nhật tất cả các plugin bạn sở hữu (nếu có).

Bạn chịu trách nhiệm tích hợp lại bất kỳ chỉnh sửa tùy chỉnh nào vào các tệp sản phẩm gốc sau khi cập nhật.

Liên hệ: Gửi email đến support@txahub.click hoặc liên hệ qua Facebook để biết thêm chi tiết.

Cài đặt

Quy trình cài đặt này thường cần khoảng 10 phút để hoàn thành khi được thực hiện chính xác.

Chuẩn bị cơ sở dữ liệu

  1. Tạo Người dùng Cơ sở dữ liệu mới cho cơ sở dữ liệu mới sắp tới (tùy chọn)
  2. Tạo Cơ sở dữ liệu mới
  3. Chuẩn bị Host, Tên, Tên người dùngMật khẩu của Cơ sở dữ liệu cho các bước sắp tới.

Tải lên sản phẩm

Tải lên nội dung của thư mục product/ trên máy chủ web của bạn.

Sản phẩm có thể được tải lên trên subdomain, domain hoặc subfolder, tùy thuộc vào nhu cầu của bạn.

Máy chủ Apache: Đảm bảo tệp .htaccess được tải lên, vì nó có thể xuất hiện như một tệp ẩn trên máy tính của bạn theo mặc định.

Máy chủ Nginx: Đảm bảo bạn thực hiện thiết lập Nginx sau khi cài đặt.

Bắt đầu quy trình cài đặt

  1. Truy cập sản phẩm trên trang web của bạn và truy cập đường dẫn domain.com/install.
  2. Bạn cần đặt quyền (CHMOD) của các tệp/thư mục được đề cập trong quy trình cài đặt thành 755, 775 hoặc 777, tùy thuộc vào máy chủ thực tế của bạn.
  3. Thực hiện theo các bước trong quy trình cài đặt.
  4. Nếu cài đặt thành công, bạn sẽ thấy thông tin đăng nhập quản trị viên.

Thiết lập Cron job

Cron job phải được thiết lập vì nó chịu trách nhiệm xử lý các tác vụ nền.

  1. Đảm bảo đăng nhập và vào Bảng Điều khiển Quản trị \-> Cài đặt \-> Tab Cron
  2. Tạo cron job mới với mỗi lệnh cron job mà bạn thấy ở đó.
  3. Quy trình này khác nhau tùy thuộc vào nhà cung cấp máy chủ web của bạn; tham khảo tài liệu của họ để biết hướng dẫn thiết lập Cron job.

Thiết lập Email

Nếu bạn muốn trang web của mình có thể gửi email, thì bạn phải thực hiện thiết lập này.

  1. Đảm bảo đăng nhập và vào Bảng Điều khiển Quản trị \-> Cài đặt \-> Tab SMTP (Email)
  2. Điền các trường bằng thông tin đăng nhập nhà cung cấp SMTP của bạn.
  3. Lưu và kiểm tra SMTP của bạn để đảm bảo nó hoạt động.

Cập nhật

Phần này hướng dẫn bạn cập nhật cài đặt hiện tại lên các phiên bản phát hành mới hơn.

Lưu ý: Nếu bạn đã chỉnh sửa các tệp gốc, các bước này sẽ ghi đè các thay đổi của bạn.

Sao lưu

Trước khi bắt đầu quy trình cập nhật, hãy đảm bảo tạo sao lưu để tạo điều kiện khôi phục trong trường hợp có vấn đề.

  1. Sao lưu cơ sở dữ liệu của bạn
  2. Sao lưu các tệp của bạn

Cập nhật tệp

  1. Tải xuống và giải nén phiên bản mới nhất của sản phẩm.
  2. Điều hướng đến thư mục product, sao chép tất cả tệp và thư mục, sau đó tải lên chúng lên máy chủ của bạn, nơi sản phẩm được cài đặt.
  3. Không tải lên/ghi đè tệp config.php.

Cập nhật cơ sở dữ liệu

  1. Vào trang web của bạn và truy cập đường dẫn /update, theo định dạng sau: https://domain.com/update.
  2. Thực hiện theo tất cả các bước bên trong quy trình cập nhật.
  3. Sau khi hoàn thành, hãy đảm bảo xóa thư mục update vì bạn không cần nó nữa.

Nếu bạn sử dụng plugin Offload để tải tài sản lên kho lưu trữ, hãy đảm bảo cập nhật tài sản trong kho lưu trữ đã tải lên bằng các tài sản mới từ thư mục themes/assets/.

Cấu hình

NGINX Setup

Sử dụng quy tắc ghi lại NGINX sau để đảm bảo hoạt động đúng của URL:

if(!-e $request_filename){
    rewrite ^\/(.+)$ /index.php?altum=$1 last;
}

Lệnh này nên được thêm vào tệp domain.conf nginx của bạn trong trường location / { ... }.

Đăng nhập xã hội

Thực hiện theo các bước sau để thiết lập phương thức đăng nhập bổ sung thông qua các mạng xã hội phổ biến. Đảm bảo sử dụng HTTPS cho tất cả Redirect URIs và xác minh tên miền khi được yêu cầu.

Video hướng dẫn: Xem video tutorial về cách thiết lập Facebook Login và Google Login.

Facebook Login

  1. Truy cập trang Meta for Developers và đăng nhập.
  2. Từ menu trên cùng bên phải, nhấp My AppsCreate App và chọn loại ứng dụng (thường là Consumer).
  3. Điền chi tiết bắt buộc (tên ứng dụng, email liên hệ, tài khoản doanh nghiệp) và nhấp Create App.
  4. Trên bảng điều khiển ứng dụng của bạn, trong Add Product, chọn Facebook Login và nhấp Set Up.
  5. Vào Settings → Basic và hoàn thành các trường bắt buộc:
    • App Domains
    • Privacy Policy URL
    • Terms of Service URL
    • App Icon (khuyến nghị)
    Tên miền của bạn phải được xác minh nếu được yêu cầu.
  6. Vào Facebook Login → Settings và:
    • Bật Client OAuth LoginWeb OAuth Login.
    • Trong Valid OAuth Redirect URIs, thêm: https://yourdomain.com/login/facebook
  7. Chuyển ứng dụng từ chế độ Development sang Live để người dùng không phải quản trị viên có thể đăng nhập.
  8. Vào Settings → Basic và sao chép App IDApp Secret của bạn.
  9. Trong Bảng Điều khiển Quản trịCài đặt → Tab Facebook Login, dán các khóa, bật Facebook Login và Submit.

Google Login

  1. Truy cập Google Cloud Console và đăng nhập.
  2. Tạo New Project hoặc chọn một project hiện có.
  3. Điều hướng đến APIs & Services → OAuth consent screen:
    • Chọn loại người dùng External để cho phép truy cập công khai.
    • Điền tên ứng dụng, email hỗ trợ, logo ứng dụng, URL chính sách bảo mật và URL điều khoản dịch vụ.
    • Thêm tên miền của bạn vào Authorized domains (phải được xác minh).
  4. Thêm các phạm vi bắt buộc: openid, email, profile.
  5. Tạo thông tin đăng nhập:
    • Điều hướng đến APIs & Services → Credentials
    • Nhấp Create CredentialsOAuth client ID
    • Chọn loại ứng dụng: Web application
    • Thêm Authorized redirect URIs: https://yourdomain.com/login/google
    • Sao chép Client IDClient Secret
  6. Trong Bảng Điều khiển Quản trịCài đặt → Tab Google Login, dán các khóa, bật Google Login và Submit.

📚 Tài liệu chính thức: docs.txahub.click/#social-logins

Hệ thống hỗ trợ đăng nhập qua các mạng xã hội (trừ Facebook và Google). Tất cả các social login đều yêu cầu cấu hình OAuth credentials từ nhà cung cấp tương ứng.

Microsoft Login

📚 Tham khảo: docs.txahub.click/#social-logins

Mô tả: Đăng nhập bằng tài khoản Microsoft (Outlook, Hotmail, Office 365).

Các bước cấu hình:

  1. Truy cập Azure Portal
  2. Đăng nhập và vào Azure Active DirectoryApp registrations
  3. Tạo New registration:
    • Name: Tên ứng dụng của bạn
    • Supported account types: Accounts in any organizational directory and personal Microsoft accounts
    • Redirect URI: Chọn Web và nhập: https://yourdomain.com/login/microsoft
  4. Sau khi tạo, ghi nhớ Application (client) ID và tạo Client secret
  5. Vào AuthenticationPlatform configurations → Đảm bảo Web platform đã được thêm
  6. Vào API permissions → Thêm quyền Microsoft GraphUser.Read (delegated)
  7. Truy cập Admin Settings → Microsoft trong hệ thống
  8. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Client ID: Application (client) ID từ Azure
    • Client Secret: Client secret vừa tạo
  9. Callback URL: https://yourdomain.com/login/microsoft (tự động hiển thị)
  10. Lưu cấu hình

Thông số kỹ thuật:

  • Scope: user.read
  • Tenant: common
  • Callback URL: {SITE_URL}login/microsoft

Discord Login

📚 Tham khảo: docs.txahub.click/#social-logins

Mô tả: Đăng nhập bằng tài khoản Discord.

Các bước cấu hình:

  1. Truy cập Discord Developer Portal
  2. Tạo New Application
  3. Vào OAuth2General:
    • Ghi nhớ Client IDClient Secret
    • Thêm Redirect: https://yourdomain.com/login/discord
  4. Vào OAuth2URL Generator:
    • Chọn scope: emailidentify
    • Copy Generated URL (tùy chọn, dùng để test)
  5. Truy cập Admin Settings → Discord trong hệ thống
  6. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Client ID: Client ID từ Discord
    • Client Secret: Client Secret từ Discord
  7. Callback URL: https://yourdomain.com/login/discord (tự động hiển thị)
  8. Lưu cấu hình

Thông số kỹ thuật:

  • Scope: email identify
  • Callback URL: {SITE_URL}login/discord

LinkedIn Login

📚 Tham khảo: docs.txahub.click/#social-logins

Mô tả: Đăng nhập bằng tài khoản LinkedIn.

Các bước cấu hình:

  1. Truy cập LinkedIn Developer Portal
  2. Tạo Create app
  3. Điền thông tin ứng dụng và tạo app
  4. Vào Auth tab:
    • Ghi nhớ Client IDClient Secret
    • Thêm Authorized redirect URLs: https://yourdomain.com/login/linkedin
    • Products: Đảm bảo Sign In with LinkedIn using OpenID Connect đã được thêm
  5. Vào ProductsSign In with LinkedIn using OpenID Connect:
    • Thêm Redirect URLs: https://yourdomain.com/login/linkedin
  6. Truy cập Admin Settings → LinkedIn trong hệ thống
  7. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Client ID: Client ID từ LinkedIn
    • Client Secret: Client Secret từ LinkedIn
  8. Callback URL: https://yourdomain.com/login/linkedin (tự động hiển thị)
  9. Lưu cấu hình

Thông số kỹ thuật:

  • Scope: openid profile email
  • Callback URL: {SITE_URL}login/linkedin

Twitter/X Login

📚 Tham khảo: docs.txahub.click/#social-logins

Mô tả: Đăng nhập bằng tài khoản Twitter/X.

Các bước cấu hình:

  1. Truy cập Twitter Developer Portal
  2. Tạo New App hoặc sử dụng app có sẵn
  3. Vào SettingsUser authentication settings:
    • Bật OAuth 1.0a (hệ thống sử dụng Hybridauth với OAuth 1.0a)
    • Callback URI / Redirect URL: https://yourdomain.com/login/twitter
    • App permissions: Chọn Read and write hoặc Read
    • Type of App: Chọn Web App, Automated App or Bot
    • Đảm bảo Request email address from users được bật để có thể lấy email
  4. Sau khi lưu, ghi nhớ API Key (Consumer API Key) và API Secret Key (Consumer API Secret)
  5. Vào Keys and tokensConsumer Keys để xem lại thông tin nếu cần
  6. Truy cập Admin Settings → Twitter trong hệ thống
  7. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Consumer API Key: API Key từ Twitter (Consumer Key)
    • Consumer API Secret: API Secret Key từ Twitter (Consumer Secret)
  8. Callback URL: https://yourdomain.com/login/twitter (tự động hiển thị)
  9. Lưu cấu hình

Thông số kỹ thuật:

  • OAuth Version: OAuth 1.0a (sử dụng Hybridauth)
  • Include Email: true
  • Callback URL: {SITE_URL}login/twitter
  • Callback Parameters: oauth_tokenoauth_verifier

Lưu ý:

  • Twitter/X sử dụng OAuth 1.0a (không phải OAuth 2.0)
  • Twitter yêu cầu cấu hình callback URL trong developer portal
  • Đảm bảo app có quyền truy cập email của người dùng
  • App permissions cần được cấu hình đúng (Read and write hoặc Read)

Captchas

TXAHUB hỗ trợ các loại captcha sau:

  • Basic Captcha - Captcha hình ảnh tích hợp sẵn (yêu cầu extension GD)
  • Google reCAPTCHA v2 - Hộp kiểm "I'm not a robot" (Checkbox)
  • hCaptcha - Giải pháp captcha thay thế
  • Cloudflare Turnstile - Captcha miễn phí từ Cloudflare

Cấu hình Captcha

Bạn có thể thiết lập captcha từ:

Bảng Điều khiển Quản trịCài đặt → Tab Captcha

Google reCAPTCHA v2

Để sử dụng Google reCAPTCHA v2:

  1. Truy cập Google reCAPTCHA Admin và đăng nhập
  2. Tạo site mới hoặc chọn site hiện có
  3. Chọn loại reCAPTCHA: reCAPTCHA v2"I'm not a robot" Checkbox
  4. Thêm domain của bạn vào danh sách
  5. Sao chép Site Key (Public Key) và Secret Key (Private Key)
  6. Trong Bảng Điều khiển Quản trịCài đặt → Tab Captcha:
    • Chọn loại: Google ReCaptcha v2 checkbox
    • Nhập ReCaptcha Public Key
    • Nhập ReCaptcha Private Key
  7. Bật captcha cho các form cần thiết: Login, Register, Lost Password, Contact, Biolink
  8. Lưu cài đặt

Lưu ý: TXAHUB hiện chỉ hỗ trợ reCAPTCHA v2 Checkbox. reCAPTCHA v3 (invisible) chưa được hỗ trợ.

hCaptcha

Để sử dụng hCaptcha:

  1. Truy cập hCaptcha và tạo tài khoản
  2. Tạo site mới và lấy Site KeySecret Key
  3. Trong Bảng Điều khiển Quản trịCài đặt → Tab Captcha, chọn hCaptcha và nhập keys

Cloudflare Turnstile

Để sử dụng Cloudflare Turnstile:

  1. Truy cập Cloudflare Dashboard
  2. Điều hướng đến Turnstile và tạo site mới
  3. Lấy Site KeySecret Key
  4. Trong Bảng Điều khiển Quản trịCài đặt → Tab Captcha, chọn Turnstile và nhập keys

Bộ xử lý thanh toán

📚 Tài liệu chính thức: docs.txahub.click (Tìm kiếm "Bộ xử lý thanh toán" hoặc "Payment processors")

Hệ thống hỗ trợ nhiều phương thức thanh toán. Tất cả các phương thức thanh toán yêu cầu giấy phép TXA VIP License hoặc TXA Pro License.

Cấu hình từ: Bảng Điều khiển Quản trịCài đặt → Tab Thanh toán

PayPal

📚 Tham khảo: docs.txahub.click/#paypal

Mô tả: Thanh toán qua PayPal, hỗ trợ thanh toán một lần và định kỳ.

Các bước cấu hình:

  1. Truy cập PayPal Developer
  2. Đăng nhập và tạo New App
  3. Chọn Sandbox (để test) hoặc Live (cho production)
  4. Ghi nhớ Client IDSecret
  5. Truy cập Admin Settings → PayPal trong hệ thống
  6. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Mode: Chọn live hoặc sandbox
    • Client ID: Client ID từ PayPal
    • Secret: Secret từ PayPal
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  7. Webhook URL: https://yourdomain.com/webhook-paypal (tự động hiển thị)
  8. Cấu hình Webhook trong PayPal Developer:
    • Vào Webhooks trong app settings
    • Thêm webhook URL: https://yourdomain.com/webhook-paypal
    • Chọn các events cần thiết
  9. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time, Recurring
  • Webhook URL: {SITE_URL}webhook-paypal

Stripe

📚 Tham khảo: docs.txahub.click/#stripe

Mô tả: Thanh toán qua Stripe, hỗ trợ thanh toán một lần và định kỳ.

Các bước cấu hình:

  1. Truy cập Stripe Dashboard
  2. Vào DevelopersAPI keys
  3. Ghi nhớ Publishable keySecret key
  4. Vào DevelopersWebhooks
  5. Tạo Add endpoint:
    • Endpoint URL: https://yourdomain.com/webhook-stripe
    • Events to send: Chọn các events cần thiết (ví dụ: payment_intent.succeeded, customer.subscription.created, etc.)
  6. Sau khi tạo, ghi nhớ Signing secret
  7. Truy cập Admin Settings → Stripe trong hệ thống
  8. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Publishable Key: Publishable key từ Stripe
    • Secret Key: Secret key từ Stripe
    • Webhook Secret: Signing secret từ webhook
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  9. Webhook URL: https://yourdomain.com/webhook-stripe (tự động hiển thị)
  10. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time, Recurring
  • Webhook URL: {SITE_URL}webhook-stripe

PayOS

📚 Tham khảo: docs.txahub.click/#payos

Mô tả: Thanh toán qua PayOS (chỉ dành cho thị trường Việt Nam), chỉ hỗ trợ VND.

Yêu cầu:

  • Giấy phép: TXA VIP License
  • Tiền tệ: Bắt buộc phải có VND trong danh sách tiền tệ

Các bước cấu hình:

  1. Truy cập PayOS Dashboard hoặc PayOS Portal
  2. Đăng ký tài khoản merchant và tạo ứng dụng
  3. Lấy thông tin từ PayOS Dashboard:
    • Client ID (Client ID của ứng dụng)
    • API Key (API Key từ ứng dụng)
    • Checksum Key (Checksum Key để xác thực webhook)
  4. Đảm bảo đã thêm VND vào danh sách tiền tệ trong Admin Settings → Payment
  5. Truy cập Admin Settings → PayOS trong hệ thống
  6. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Client ID: Client ID từ PayOS
    • API Key: API Key từ PayOS
    • Checksum Key: Checksum Key từ PayOS
    • Expiration Minutes: Thời gian hết hạn link thanh toán (mặc định: 15 phút)
  7. Currencies: VND sẽ tự động được chọn và không thể bỏ chọn
  8. Webhook URL: https://yourdomain.com/webhook-payos (tự động hiển thị)
  9. Cấu hình Webhook trong PayOS Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-payos
  10. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Currency: VND only
  • Minimum Amount: 2000 VND
  • Webhook URL: {SITE_URL}webhook-payos
  • Expiration: 1-1440 phút (mặc định: 15 phút)
  • Order Code: 6 chữ số (tự động generate, đảm bảo unique)
  • Description Format: TPL{PLAN_NAME}{RANDOM} (tối đa 25 ký tự, chỉ chữ cái và số)
    • TPL: 3 ký tự cố định
    • PLAN_NAME: Tên gói (chữ in hoa, chỉ alphanumeric)
    • RANDOM: 4 ký tự ngẫu nhiên (a-z, A-Z, 0-9)
  • Return Parameters: code (numeric, ví dụ: '00'), status (ví dụ: 'PAID'), orderCode, id

Lưu ý:

  • PayOS chỉ hỗ trợ VND
  • Số tiền phải là số nguyên (không có phần thập phân)
  • Link thanh toán sẽ tự động hết hạn sau thời gian cấu hình
  • PayOS redirect về với parameter code (numeric) - khác với discount code (alphanumeric)
  • Hệ thống tự động cleanup các payment đã hết hạn (status = 0, expired)
  • Description được tự động format theo quy tắc: TPL + tên gói (chữ hoa, alphanumeric) + 4 ký tự random

Coinbase

📚 Tham khảo: docs.txahub.click/#coinbase

Mô tả: Thanh toán bằng tiền điện tử qua Coinbase Commerce.

Các bước cấu hình:

  1. Truy cập Coinbase Commerce
  2. Đăng ký và tạo API key
  3. Ghi nhớ API KeyWebhook Secret
  4. Truy cập Admin Settings → Coinbase trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • API Key: API Key từ Coinbase
    • Webhook Secret: Webhook Secret từ Coinbase
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong Coinbase Commerce:
    • Thêm webhook URL: https://yourdomain.com/webhook-coinbase
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Webhook URL: {SITE_URL}webhook-coinbase

PayU

📚 Tham khảo: docs.txahub.click/#payu

Mô tả: Thanh toán qua PayU (phổ biến ở Đông Âu và Ấn Độ).

Các bước cấu hình:

  1. Truy cập PayU Dashboard
  2. Đăng ký và tạo merchant account
  3. Lấy thông tin:
    • Merchant POS ID
    • Signature Key
    • OAuth Client ID
    • OAuth Client Secret
  4. Truy cập Admin Settings → PayU trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Mode: Chọn secure (live) hoặc sandbox (test)
    • Merchant POS ID: Merchant POS ID từ PayU
    • Signature Key: Signature Key từ PayU
    • OAuth Client ID: OAuth Client ID từ PayU
    • OAuth Client Secret: OAuth Client Secret từ PayU
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Mode: secure (live) hoặc sandbox (test)

Iyzico

📚 Tham khảo: docs.txahub.click/#iyzico

Mô tả: Thanh toán qua Iyzico (phổ biến ở Thổ Nhĩ Kỳ).

Các bước cấu hình:

  1. Truy cập Iyzico Dashboard
  2. Đăng ký và tạo API key
  3. Lấy thông tin:
    • API Key
    • Secret Key
  4. Truy cập Admin Settings → Iyzico trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Mode: Chọn live (production) hoặc sandbox (test)
    • API Key: API Key từ Iyzico
    • Secret Key: Secret Key từ Iyzico
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Mode: live hoặc sandbox

Paystack

📚 Tham khảo: docs.txahub.click/#paystack

Mô tả: Thanh toán qua Paystack (phổ biến ở châu Phi).

Các bước cấu hình:

  1. Truy cập Paystack Dashboard
  2. Đăng ký và tạo API key
  3. Lấy thông tin:
    • Public Key
    • Secret Key
  4. Truy cập Admin Settings → Paystack trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Public Key: Public Key từ Paystack
    • Secret Key: Secret Key từ Paystack
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong Paystack Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-paystack
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time, Recurring
  • Webhook URL: {SITE_URL}webhook-paystack

Razorpay

📚 Tham khảo: docs.txahub.click/#razorpay

Mô tả: Thanh toán qua Razorpay (phổ biến ở Ấn Độ).

Các bước cấu hình:

  1. Truy cập Razorpay Dashboard
  2. Đăng ký và tạo API key
  3. Lấy thông tin:
    • Key ID
    • Key Secret
    • Webhook Secret
  4. Truy cập Admin Settings → Razorpay trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Key ID: Key ID từ Razorpay
    • Key Secret: Key Secret từ Razorpay
    • Webhook Secret: Webhook Secret từ Razorpay
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong Razorpay Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-razorpay
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time, Recurring
  • Webhook URL: {SITE_URL}webhook-razorpay

Mollie

📚 Tham khảo: docs.txahub.click/#mollie

Mô tả: Thanh toán qua Mollie (phổ biến ở châu Âu).

Các bước cấu hình:

  1. Truy cập Mollie Dashboard
  2. Đăng ký và tạo API key
  3. Lấy thông tin:
    • API Key
  4. Truy cập Admin Settings → Mollie trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • API Key: API Key từ Mollie
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong Mollie Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-mollie
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time, Recurring
  • Webhook URL: {SITE_URL}webhook-mollie

MyFatoorah

📚 Tham khảo: docs.txahub.click/#myfatoorah

Mô tả: Thanh toán qua MyFatoorah (phổ biến ở Trung Đông).

Các bước cấu hình:

  1. Truy cập MyFatoorah Dashboard
  2. Đăng ký và tạo API key
  3. Lấy thông tin:
    • API Key
    • Secret Key
  4. Xác định API Endpoint dựa trên khu vực:
    • api.myfatoorah.com (Global)
    • api-sa.myfatoorah.com (Saudi Arabia)
    • api-qa.myfatoorah.com (Qatar)
    • api-eg.myfatoorah.com (Egypt)
    • apitest.myfatoorah.com (Test)
  5. Truy cập Admin Settings → MyFatoorah trong hệ thống
  6. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • API Endpoint: Chọn endpoint phù hợp
    • API Key: API Key từ MyFatoorah
    • Secret Key: Secret Key từ MyFatoorah
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • API Endpoints:
    • api.myfatoorah.com (Global)
    • api-sa.myfatoorah.com (Saudi Arabia)
    • api-qa.myfatoorah.com (Qatar)
    • api-eg.myfatoorah.com (Egypt)
    • apitest.myfatoorah.com (Test)

YooKassa

📚 Tham khảo: docs.txahub.click/#yookassa

Mô tả: Thanh toán qua YooKassa (phổ biến ở Nga).

Các bước cấu hình:

  1. Truy cập YooKassa Dashboard
  2. Đăng ký và tạo shop
  3. Lấy thông tin:
    • Shop ID
    • Secret Key
  4. Truy cập Admin Settings → YooKassa trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Shop ID: Shop ID từ YooKassa
    • Secret Key: Secret Key từ YooKassa
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong YooKassa Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-yookassa
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Webhook URL: {SITE_URL}webhook-yookassa

Crypto.com

📚 Tham khảo: docs.txahub.click/#crypto_com

Mô tả: Thanh toán bằng tiền điện tử qua Crypto.com Pay.

Các bước cấu hình:

  1. Truy cập Crypto.com Pay
  2. Đăng ký và tạo merchant account
  3. Lấy thông tin:
    • Publishable Key
    • Secret Key
    • Webhook Secret
  4. Truy cập Admin Settings → Crypto.com trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Publishable Key: Publishable Key từ Crypto.com
    • Secret Key: Secret Key từ Crypto.com
    • Webhook Secret: Webhook Secret từ Crypto.com
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong Crypto.com Pay:
    • Thêm webhook URL: https://yourdomain.com/webhook-crypto-com
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Webhook URL: {SITE_URL}webhook-crypto-com

Paddle

📚 Tham khảo: docs.txahub.click/#paddle

Mô tả: Thanh toán qua Paddle (legacy).

Các bước cấu hình:

  1. Truy cập Paddle Dashboard
  2. Đăng ký và tạo vendor account
  3. Lấy thông tin:
    • Vendor ID
    • API Key
    • Public Key
  4. Truy cập Admin Settings → Paddle trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Mode: Chọn live (production) hoặc sandbox (test)
    • Vendor ID: Vendor ID từ Paddle
    • API Key: API Key từ Paddle
    • Public Key: Public Key từ Paddle
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong Paddle Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-paddle
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Mode: live hoặc sandbox
  • Webhook URL: {SITE_URL}webhook-paddle

Paddle Billing

📚 Tham khảo: docs.txahub.click/#paddle_billing

Mô tả: Thanh toán qua Paddle Billing (phiên bản mới).

Các bước cấu hình:

  1. Truy cập Paddle Dashboard
  2. Đăng ký và tạo vendor account
  3. Chuyển sang Paddle Billing
  4. Lấy thông tin:
    • API Key
    • Webhook Secret
  5. Truy cập Admin Settings → Paddle Billing trong hệ thống
  6. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • API Key: API Key từ Paddle Billing
    • Webhook Secret: Webhook Secret từ Paddle Billing
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  7. Cấu hình Webhook trong Paddle Billing:
    • Thêm webhook URL: https://yourdomain.com/webhook-paddle-billing
  8. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time, Recurring
  • Webhook URL: {SITE_URL}webhook-paddle-billing

MercadoPago

📚 Tham khảo: docs.txahub.click/#mercadopago

Mô tả: Thanh toán qua MercadoPago (phổ biến ở Mỹ Latinh).

Các bước cấu hình:

  1. Truy cập MercadoPago Dashboard
  2. Đăng ký và tạo application
  3. Lấy thông tin:
    • Access Token
  4. Truy cập Admin Settings → MercadoPago trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Access Token: Access Token từ MercadoPago
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong MercadoPago Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-mercadopago
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Webhook URL: {SITE_URL}webhook-mercadopago

Midtrans

📚 Tham khảo: docs.txahub.click/#midtrans

Mô tả: Thanh toán qua Midtrans (phổ biến ở Indonesia).

Các bước cấu hình:

  1. Truy cập Midtrans Dashboard
  2. Đăng ký và tạo merchant account
  3. Lấy thông tin:
    • Server Key
  4. Truy cập Admin Settings → Midtrans trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Server Key: Server Key từ Midtrans
    • Mode: Chọn mode phù hợp
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong Midtrans Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-midtrans
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Webhook URL: {SITE_URL}webhook-midtrans

Flutterwave

📚 Tham khảo: docs.txahub.click/#flutterwave

Mô tả: Thanh toán qua Flutterwave (phổ biến ở châu Phi).

Các bước cấu hình:

  1. Truy cập Flutterwave Dashboard
  2. Đăng ký và tạo merchant account
  3. Lấy thông tin:
    • Secret Key
  4. Truy cập Admin Settings → Flutterwave trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Secret Key: Secret Key từ Flutterwave
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong Flutterwave Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-flutterwave
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time, Recurring
  • Webhook URL: {SITE_URL}webhook-flutterwave

LemonSqueezy

📚 Tham khảo: docs.txahub.click/#lemonsqueezy

Mô tả: Thanh toán qua LemonSqueezy.

Các bước cấu hình:

  1. Truy cập LemonSqueezy Dashboard
  2. Đăng ký và tạo store
  3. Lấy thông tin:
    • API Key
    • Signing Secret
    • Store ID
  4. Tạo các variants cho các gói:
    • One-time Monthly Variant ID
    • One-time Quarterly Variant ID
    • One-time Biannual Variant ID
    • One-time Annual Variant ID
    • One-time Lifetime Variant ID
    • Recurring Monthly Variant ID
    • Recurring Annual Variant ID
  5. Truy cập Admin Settings → LemonSqueezy trong hệ thống
  6. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • API Key: API Key từ LemonSqueezy
    • Signing Secret: Signing Secret từ LemonSqueezy
    • Store ID: Store ID từ LemonSqueezy
    • Nhập các Variant IDs tương ứng
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  7. Cấu hình Webhook trong LemonSqueezy Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-lemonsqueezy
  8. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time, Recurring
  • Webhook URL: {SITE_URL}webhook-lemonsqueezy

Klarna

📚 Tham khảo: docs.txahub.click/#klarna

Mô tả: Thanh toán qua Klarna (Buy now, pay later).

Các bước cấu hình:

  1. Truy cập Klarna Dashboard
  2. Đăng ký và tạo merchant account
  3. Lấy thông tin:
    • API Key
    • Secret Key
  4. Truy cập Admin Settings → Klarna trong hệ thống
  5. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • API Key: API Key từ Klarna
    • Secret Key: Secret Key từ Klarna
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  6. Cấu hình Webhook trong Klarna Dashboard:
    • Thêm webhook URL: https://yourdomain.com/webhook-klarna
  7. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Webhook URL: {SITE_URL}webhook-klarna

Offline Payment

📚 Tham khảo: docs.txahub.click/#offline_payment

Mô tả: Thanh toán offline (chuyển khoản ngân hàng, thanh toán khi nhận hàng, v.v.).

Các bước cấu hình:

  1. Truy cập Admin Settings → Offline Payment trong hệ thống
  2. Nhập các thông tin:
    • Is Enabled: Bật tính năng
    • Instructions: Hướng dẫn thanh toán (ví dụ: số tài khoản ngân hàng, thông tin chuyển khoản)
    • Proof Size Limit: Giới hạn kích thước file chứng từ thanh toán (MB)
    • Currencies: Chọn các loại tiền tệ hỗ trợ
  3. Lưu cấu hình

Thông số kỹ thuật:

  • Payment Type: One-time only
  • Proof Size Limit: Tối đa bằng get_max_upload()

Lưu ý:

  • Người dùng sẽ phải upload chứng từ thanh toán sau khi thanh toán
  • Admin cần xác nhận thanh toán thủ công

Thuế

Bạn có thể cấu hình các quy tắc thuế tùy chỉnh từ:

Bảng Điều khiển Quản trịCài đặt → Tab Thuế

Các quy tắc thuế có thể được thiết lập theo quốc gia, loại thanh toán và thời gian.

Đa tiền tệ

📚 Tài liệu chính thức: docs.txahub.click (Tìm kiếm "Đa tiền tệ" hoặc "Multi-currency")

Hệ thống hỗ trợ API chuyển đổi tiền tệ với cấu hình khác nhau tùy theo loại giấy phép.

Cấu hình từ: Bảng Điều khiển Quản trịCài đặt → Tab Đa tiền tệ

TXA Pro License

Sử dụng FreeCurrencyAPI

  1. Truy cập trang Admin Settings → Payment
  2. Tìm mục Currency Exchange API Key
  3. Đăng ký API key tại FreeCurrencyAPI
  4. Nhập API key vào trường Currency Exchange API Key
  5. Lưu cấu hình

API Endpoint:

  • URL: https://api.freecurrencyapi.com/v1/latest?apikey={API_KEY}&base_currency={FROM}¤cies={TO}
  • Ví dụ: https://api.freecurrencyapi.com/v1/latest?apikey=YOUR_API_KEY&base_currency=USD¤cies=VND

Mô tả:

  • API key từ FreeCurrencyAPI
  • Hỗ trợ chuyển đổi tiền tệ tự động
  • Không yêu cầu cấu hình thêm
  • API được gọi tự động khi cần chuyển đổi tiền tệ
  • ❌ Không hỗ trợ tỉ giá VND

TXA VIP License

Sử dụng CurrencyLayer (CurrencyAPI)

  1. Truy cập trang Admin Settings → Payment
  2. Đăng ký API key tại CurrencyLayer
  3. Nhập API key vào trường Currency API Key
  4. Bật toggle Currency API Enabled
  5. Cấu hình Currency Cache TTL (mặc định: 1800 giây = 30 phút)
  6. Lưu cấu hình

Thông số kỹ thuật:

  • API URL: http://api.currencylayer.com/live (được cấu hình trong config.php)
  • API Format: {API_URL}?access_key={API_KEY}¤cies=VND&source=USD&format=1
  • Register URL: https://currencylayer.com/ (được cấu hình trong config.php)
  • Cache File: uploads/logs/currency_cache.json (được cấu hình trong config.php)
  • Default USD to VND: 26335 (tỷ giá mặc định nếu API lỗi, được cấu hình trong config.php)
  • USD to VND Fee Percent: 8% (phí trên tỷ giá, được cấu hình trong config.php)
  • USD to VND Extra Fee Percent: 3% (phí bổ sung trên số tiền gốc, được cấu hình trong config.php)

Lưu ý:

  • Cache TTL tối thiểu: 60 giây
  • Cache TTL tối đa: 86400 giây (24 giờ)
  • Hệ thống sẽ tự động cache tỷ giá để giảm số lần gọi API
  • Nếu API lỗi, hệ thống sẽ sử dụng tỷ giá mặc định
  • ✅ Có hỗ trợ tỉ giá VND

💡 Lưu ý: Nếu bạn cần hỗ trợ tỉ giá VND cho website của mình, vui lòng nâng cấp lên license TXAVIP để sử dụng CurrencyLayer API với đầy đủ tính năng.

Google Safe Browsing

Tích hợp Google Safe Browsing API để kiểm tra các URL độc hại.

Lấy API key từ Google Cloud Console.

Google Static Maps

Sử dụng Google Static Maps API để hiển thị bản đồ tĩnh.

Thiết lập API key từ: Google Cloud Console

Tên miền tùy chỉnh

Cho phép người dùng liên kết tên miền tùy chỉnh của họ.

Cấu hình DNS: Trỏ A record đến IP của server.

Trình xử lý thông báo

Cấu hình email, SMS và thông báo đẩy từ:

Bảng Điều khiển Quản trịCài đặtThông báo

Tích hợp Telegram Bot Notifications

Tổng quan

Tính năng này cho phép người dùng kết nối Telegram Bot của riêng họ để nhận thông báo từ hệ thống TXAHUB. Admin có thể quản lý và cấu hình tính năng này thông qua Admin Panel.

Yêu cầu

  • PHP 8.4+
  • MySQL/MariaDB
  • Telegram Bot Token (tạo từ @BotFather)
  • HTTPS (bắt buộc cho webhook Telegram)

Hướng dẫn cài đặt

Bước 1: Tạo Telegram Bot
  1. Mở Telegram và tìm @BotFather
  2. Gửi lệnh /newbot
  3. Làm theo hướng dẫn để đặt tên và username cho bot
  4. BotFather sẽ cung cấp Bot Token (dạng: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
  5. Lưu lại token này
Bước 2: Cấu hình Admin
  1. Đăng nhập vào Admin Panel
  2. Vào SettingsTelegram Bot
  3. Bật tính năng bằng cách check vào "Enable Telegram Bot Integration"
  4. Cấu hình thời gian hết hạn mã xác minh (mặc định: 5 phút)
  5. Chọn các loại thông báo được phép gửi:
    • Link Created
    • Link Updated
    • Link Deleted
    • Payment Received
    • Biolink Created
    • QR Code Created
  6. Click Update để lưu

Hướng dẫn sử dụng cho User

Kết nối Telegram Bot
  1. Đăng nhập vào tài khoản
  2. Vào AccountTelegram Bot Connect (hoặc truy cập /telegram-bot-connect)
  3. Nhập Bot Token đã tạo từ BotFather
  4. Click Connect Bot
  5. Hệ thống sẽ hiển thị:
    • Webhook URL (copy URL này)
    • Verification Code (mã xác minh)
Cấu hình Webhook cho Bot

Lưu ý: Webhook sẽ được tự động set khi bạn nhập bot token và click "Connect Bot". Tuy nhiên, nếu cần set thủ công hoặc webhook tự động set không thành công:

Cách 1: Set Webhook qua URL (Nhanh nhất)
  1. Đăng nhập vào tài khoản và vào trang Telegram Bot Connect
  2. Copy Webhook URL từ trang (click vào nút copy bên cạnh webhook URL)
  3. Mở trình duyệt và truy cập URL sau:
    https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=<WEBHOOK_URL>
  4. Thay <YOUR_BOT_TOKEN> bằng bot token của bạn (ví dụ: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
  5. Thay <WEBHOOK_URL> bằng webhook URL đã copy từ hệ thống (ví dụ: https://txahub.click/telegram-webhook/abc123...)
  6. Ví dụ URL đầy đủ:
    https://api.telegram.org/bot123456789:ABCdefGHIjklMNOpqrsTUVwxyz/setWebhook?url=https://txahub.click/telegram-webhook/abc123def456...
  7. Nếu thành công, bạn sẽ thấy response: {"ok":true,"result":true,"description":"Webhook was set"}
Cách 2: Set Webhook qua cURL (Từ Terminal/Command Prompt)
curl -X POST "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "<WEBHOOK_URL>",
    "allowed_updates": ["message"]
  }'

Thay <YOUR_BOT_TOKEN><WEBHOOK_URL> bằng giá trị thực tế.

Cách 3: Kiểm tra Webhook hiện tại

Để kiểm tra webhook đã được set chưa, truy cập:

https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getWebhookInfo

Response sẽ cho biết:

  • url: Webhook URL hiện tại
  • has_custom_certificate: Có certificate tùy chỉnh không
  • pending_update_count: Số update đang chờ xử lý
  • last_error_date: Ngày lỗi cuối cùng (nếu có)
  • last_error_message: Thông báo lỗi cuối cùng (nếu có)
Cách 4: Xóa Webhook (Nếu cần)

Nếu muốn xóa webhook, truy cập:

https://api.telegram.org/bot<YOUR_BOT_TOKEN>/deleteWebhook

⚠️ Lưu ý quan trọng:

  • Webhook URL từ hệ thống là duy nhất cho mỗi bot và user, không được chia sẻ
  • Webhook URL phải sử dụng HTTPS (không hỗ trợ HTTP)
  • Server phải có thể nhận POST request từ Telegram (kiểm tra firewall)
  • Webhook URL chỉ có thể được set một lần cho mỗi bot token
Xác minh Bot
  1. Mở Telegram và tìm bot của bạn (theo username đã đặt)
  2. Click Start để bắt đầu chat với bot
  3. Bot sẽ gửi mã xác minh cho bạn
  4. Nhập mã xác minh vào bot (mã có dạng: TXATE_XXXXXXXX)
  5. Nếu đúng, bot sẽ gửi thông báo xác nhận
  6. Quay lại trang web, bạn sẽ thấy trạng thái "Bot Verified"
Sử dụng sau khi xác minh

Sau khi bot được xác minh:

  • Notification handler tự động được tạo
  • Bạn sẽ nhận thông báo qua Telegram khi có sự kiện được cấu hình
  • Có thể quản lý notification handler tại Notification Handlers

Cấu trúc Verification Code

  • Prefix: TXATE_
  • Format: TXATE_ + 8 ký tự ngẫu nhiên (chữ hoa)
  • Ví dụ: TXATE_A1B2C3D4
  • Thời gian hết hạn: Mặc định 5 phút (có thể cấu hình trong Admin)

Quy trình xác minh chi tiết

1. User nhập Bot Token
   ↓
2. Hệ thống validate token qua Telegram API
   ↓
3. Tạo Verification Code (TXATE_XXXXXXXX)
   ↓
4. Tạo Webhook URL và set webhook
   ↓
5. User start bot trên Telegram
   ↓
6. Bot gửi mã xác minh cho user
   ↓
7. User nhập mã vào bot
   ↓
8. Webhook nhận message và kiểm tra mã
   ↓
9. Nếu đúng → Xác minh thành công
   ↓
10. Tự động tạo/update Notification Handler

Troubleshooting

Bot không nhận được webhook
  1. Kiểm tra webhook URL có đúng không
  2. Đảm bảo server có HTTPS
  3. Kiểm tra firewall có chặn request từ Telegram không
  4. Thử set webhook thủ công qua API:
    https://api.telegram.org/bot<TOKEN>/setWebhook?url=<URL>
Mã xác minh không hoạt động
  1. Kiểm tra mã có hết hạn không (mặc định 5 phút)
  2. Đảm bảo nhập đúng mã (có prefix TXATE_)
  3. Thử tạo lại bot token và nhập lại
Bot không gửi thông báo
  1. Kiểm tra bot đã được xác minh chưa
  2. Kiểm tra Notification Handler đã được tạo và enabled chưa
  3. Kiểm tra Admin đã bật loại thông báo đó chưa
  4. Kiểm tra logs để xem có lỗi không
Lỗi "Invalid Bot Token"
  1. Kiểm tra token có đúng format không (số:chuỗi)
  2. Kiểm tra token có còn hợp lệ không
  3. Thử tạo bot mới và lấy token mới

API Reference

Webhook Endpoint
  • URL: POST /telegram-webhook/{webhook_secret}
  • Headers: Content-Type: application/json
  • Body: Telegram Update object (tự động gửi từ Telegram)
  • Response: 200 OK (luôn trả về 200 để Telegram không retry)
User Connect Endpoint
  • URL: GET /telegram-bot-connect
  • Authentication: Required (User login)
  • Method: GET (view), POST (submit)
  • POST Data:
    • bot_token: Bot token từ BotFather
    • token: CSRF token

Security Considerations

  1. Webhook Secret: Mỗi bot có webhook secret riêng để bảo mật
  2. Verification Code Expiry: Mã xác minh tự động hết hạn sau thời gian cấu hình
  3. CSRF Protection: Tất cả forms đều có CSRF protection
  4. Token Validation: Bot token được validate qua Telegram API trước khi lưu
  5. HTTPS Required: Telegram yêu cầu HTTPS cho webhook

Best Practices

  1. Tạo bot riêng cho mỗi user: Không chia sẻ bot token
  2. Bảo mật webhook secret: Không công khai webhook secret
  3. Kiểm tra thường xuyên: Kiểm tra bot còn hoạt động không
  4. Backup token: Lưu backup bot token ở nơi an toàn
  5. Monitor logs: Theo dõi logs để phát hiện lỗi sớm

Support

Nếu gặp vấn đề, vui lòng:

  1. Kiểm tra logs trong uploads/logs/
  2. Kiểm tra error logs của server
  3. Liên hệ support qua:

Changelog

Version 6120 - 2025-11-29
✨ Added - Tính năng mới
🔐 Đăng nhập bằng QR Code
  • Tính năng đăng nhập bằng QR Code: Người dùng có thể đăng nhập vào hệ thống bằng cách quét QR code từ ứng dụng mobile
  • API Endpoints mới:
    • POST /api/auth/qr/generate - Tạo QR code đăng nhập
    • GET /api/auth/qr/check - Kiểm tra trạng thái QR code
    • POST /api/auth/qr/scanAuth - Mobile app quét QR code
    • POST /api/auth/qr/confirmAuth - Mobile app xác nhận đăng nhập
    • GET /api/auth/qr/devicesAuth - Lấy danh sách thiết bị đã đăng nhập
  • Database mới:
    • Bảng qr_sessions: Lưu trữ phiên đăng nhập QR code
    • Bảng user_devices: Lưu trữ lịch sử thiết bị đăng nhập
  • Frontend JavaScript:
    • Auto-refresh QR code khi hết hạn
    • Polling status mỗi 2 giây
    • Tự động redirect khi đăng nhập thành công
  • Models mới:
    • QrSession - Quản lý phiên QR code
    • UserDevice - Quản lý thiết bị người dùng
  • Controller mới:
    • QrAuthController - Xử lý các API endpoints cho QR login
🔧 Technical Details
  • QR code có thời gian hết hạn: 60 giây
  • Tự động refresh QR code 5 giây trước khi hết hạn
  • Hỗ trợ đa ngôn ngữ cho các thông báo QR login
  • Tích hợp với hệ thống authentication hiện có mà không ảnh hưởng đến login cũ
📝 Notes
  • Tính năng này hoàn toàn độc lập với hệ thống login hiện tại
  • Không có thay đổi breaking changes
  • Tương thích ngược 100%

OpenAI Integration

Thực hiện theo các bước sau để kết nối hệ thống của bạn với OpenAI API cho các tính năng AI như dịch thuật AI.

Lấy API Key từ OpenAI

  1. Đăng nhập vào OpenAI Dashboard bằng tài khoản OpenAI của bạn.
  2. Điều hướng đến phần View API Keys.
  3. Nhấp Create new secret key.
  4. Đặt tên mô tả cho key (ví dụ: "Production Website") và xác nhận.
  5. Lưu ý quan trọng: Sao chép API key ngay lập tức – bạn sẽ không thể xem lại nó sau khi rời khỏi trang.

Cấu hình AI Translation

Trong Bảng Điều khiển Quản trịCài đặt → Tab MainOther settingsOpenAI API key, dán API key vào trường được cung cấp và lưu.

⚠️ Lưu ý: Đảm bảo bạn đã sao chép API key trước khi đóng trang. Nếu bạn quên hoặc mất API key, bạn sẽ cần tạo key mới.

🤖 Gemini AI Integration (v6108+)

📚 Tài liệu chính thức: docs.txahub.click/#gemini-ai

Hệ thống hỗ trợ Google Gemini AI bên cạnh ChatGPT cho hệ thống AI Chat. Admin có thể chọn AI provider (ChatGPT hoặc Gemini) và tất cả users sẽ tự động sử dụng AI provider mà admin đã chọn.

ℹ️ Plugin Requirement: Tính năng này chỉ hoạt động khi plugin AIX có trong hệ thống.

Tính năng mới (v6108)

  • 🤖 Hỗ trợ Gemini AI: Thêm hỗ trợ Google Gemini AI bên cạnh ChatGPT cho hệ thống AI Chat
  • ⚙️ Chọn AI Provider: Admin có thể chọn AI provider (ChatGPT hoặc Gemini) trong Admin Settings > AIX > Chats
  • 🔄 Tự động sử dụng: Tất cả users sẽ tự động sử dụng AI provider mà admin đã chọn
  • 🔑 Nhiều API Keys: Hỗ trợ nhiều Gemini API keys (hệ thống sẽ tự động chọn ngẫu nhiên)
  • 📋 Nhiều Models: Hỗ trợ nhiều Gemini models: gemini-2.0-flash-exp, gemini-1.5-pro, gemini-1.5-flash, gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-pro

Lấy Gemini API Key

  1. Truy cập Google AI Studio - API Keys
  2. Đăng nhập bằng tài khoản Google của bạn
  3. Nhấp Create API Key
  4. Chọn project hoặc tạo project mới
  5. Lưu ý quan trọng: Sao chép API key ngay lập tức – bạn sẽ không thể xem lại nó sau khi rời khỏi trang

Cấu hình Gemini AI

Cấu hình từ: Bảng Điều khiển Quản trịCài đặt → Tab AIXChats

1. Chọn AI Provider
  • Truy cập Admin Settings → AIX → Chats
  • Chọn AI Provider:
    • ChatGPT: Sử dụng OpenAI ChatGPT (mặc định)
    • Gemini: Sử dụng Google Gemini AI
  • UI sẽ tự động hiển thị/ẩn các trường cấu hình Gemini dựa trên provider được chọn
2. Cấu hình Gemini API Key
  • Nhập Gemini API Key vào trường được cung cấp
  • Hỗ trợ nhiều API keys: Nhập nhiều API keys (mỗi key trên một dòng), hệ thống sẽ tự động chọn ngẫu nhiên
  • Ví dụ:
    AIzaSyA1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6Q
    AIzaSyZ9Y8X7W6V5U4T3S2R1Q0P9O8N7M6L5K4J
    AIzaSyH3I2J1K0L9M8N7O6P5Q4R3S2T1U0V9W8X
3. Chọn Gemini Model
  • Chọn Gemini Model từ dropdown:
    • gemini-2.0-flash-exp (Mặc định - Gemini 2.0 Flash Experimental)
    • gemini-1.5-pro (Gemini 1.5 Pro)
    • gemini-1.5-flash (Gemini 1.5 Flash)
    • gemini-2.5-pro (Gemini 2.5 Pro)
    • gemini-2.5-flash (Gemini 2.5 Flash)
    • gemini-2.5-flash-lite (Gemini 2.5 Flash Lite)
    • gemini-pro (Gemini Pro)
  • Mặc định: gemini-2.0-flash-exp
  • Tài liệu models: https://ai.google.dev/models/gemini

Cập nhật Database

⚠️ Migration: Sau khi cập nhật lên version 6108, bạn cần chạy Migration để cập nhật database:

Truy cập: https://yourdomain.com/update

Các trường mới được thêm vào database:

  • chats_ai_provider (aix settings): Chọn AI provider - chatgpt hoặc gemini (Mặc định: chatgpt)
  • gemini_api_key (aix settings): API key cho Gemini (hỗ trợ nhiều keys, mỗi key trên một dòng)
  • gemini_model (aix settings): Model Gemini được sử dụng (Mặc định: gemini-2.0-flash-exp)

Giao diện mới

Admin Settings → AIX → Chats:

  • ✅ UI chọn AI provider (ChatGPT/Gemini)
  • ✅ Input field để nhập Gemini API key (hỗ trợ nhiều keys)
  • ✅ Dropdown để chọn Gemini model
  • ✅ UI tự động hiển thị/ẩn các trường cấu hình Gemini dựa trên provider được chọn
  • ✅ Help text và tooltips hướng dẫn cấu hình cho từng field

Kỹ thuật

  • System Prompt: Gemini sử dụng systemInstruction thay vì system như ChatGPT
  • Response Format: Hệ thống tự động xử lý sự khác biệt về format response giữa ChatGPT và Gemini
  • Error Handling: Cải thiện error handling cho từng AI provider
  • Model Selection: Tự động chọn model dựa trên AI provider được admin cấu hình
  • API Key Rotation: Hệ thống tự động chọn ngẫu nhiên từ nhiều API keys được cung cấp

✅ Backward Compatibility: Version này tương thích ngược 100% với version trước, không có breaking changes. Nếu không cấu hình Gemini, hệ thống sẽ tiếp tục sử dụng ChatGPT như mặc định.

🔒 Security: API keys được lưu trữ an toàn trong database và được mã hóa.

Lưu ý quan trọng

  • Plugin Requirement: Tính năng này chỉ hoạt động khi plugin AIX có trong hệ thống
  • Migration: Chạy https://yourdomain.com/update để cập nhật database
  • Default Provider: Mặc định hệ thống sử dụng ChatGPT (chatgpt)
  • Gemini API Key: Có thể lấy từ https://ai.google.dev/
  • Multiple API Keys: Hỗ trợ nhập nhiều API keys (mỗi key trên một dòng), hệ thống sẽ tự động chọn ngẫu nhiên
  • Model Selection: Admin có thể chọn Gemini model phù hợp với nhu cầu sử dụng
  • Default Model: Mặc định sử dụng gemini-2.0-flash-exp (Gemini 2.0 Flash Experimental)
  • Documentation: Gemini models documentation: https://ai.google.dev/models/gemini

Passkey Authentication

TXAHUB hỗ trợ đăng nhập bằng Passkey (WebAuthn) - một phương thức xác thực không mật khẩu an toàn hơn.

Tính năng

  • Đăng nhập không cần mật khẩu bằng Passkey
  • Hỗ trợ nhiều thiết bị (điện thoại, máy tính, khóa bảo mật)
  • Backup tự động lên Google Drive (nếu đã cấu hình)
  • Hiển thị thông tin thiết bị và vị trí khi đăng ký
  • Quản lý Passkey từ trang quản lý tài khoản

Cấu hình

  1. Điều hướng đến Bảng Điều khiển Quản trịCài đặt → Tab Passkey
  2. Bật Passkey Login
  3. Cấu hình các tùy chọn:
    • Attestation: Chọn mức độ xác thực (none, indirect, direct)
    • User Verification: Yêu cầu xác thực người dùng
    • Resident Key: Cho phép lưu passkey trên thiết bị
  4. Lưu cài đặt

Lưu ý: Passkey yêu cầu HTTPS để hoạt động. Đảm bảo website của bạn đã có SSL certificate.

Google Drive Backup

TXAHUB hỗ trợ sao lưu tự động Passkey lên Google Drive để bảo vệ dữ liệu của bạn.

Thiết lập Google Drive API

  1. Truy cập Google Cloud Console và đăng nhập
  2. Tạo project mới hoặc chọn project hiện có
  3. Điều hướng đến APIs & ServicesLibrary
  4. Tìm và bật Google Drive API
  5. Điều hướng đến APIs & ServicesCredentials
  6. Tạo OAuth 2.0 Client ID cho ứng dụng web
  7. Thêm Authorized redirect URIs: https://yourdomain.com/admin/google-drive
  8. Sao chép Client IDClient Secret

Cấu hình trong TXAHUB

  1. Điều hướng đến Bảng Điều khiển Quản trịCài đặt → Tab Google Drive
  2. Nhập Client IDClient Secret
  3. Nhấp Kết nối Google Drive để xác thực
  4. Cho phép quyền truy cập Google Drive
  5. Bật Auto Backup Passkeys nếu muốn tự động sao lưu
  6. Lưu cài đặt

Lưu ý: Google Drive backup chỉ hoạt động với Passkey. Đảm bảo đã cấu hình Passkey trước khi sử dụng tính năng này.

Đăng nhập nhanh (Quick Login)

📚 Tài liệu chính thức: docs.txahub.click (Tìm kiếm "Quick Login" hoặc "Đăng nhập nhanh")

Mô tả: Tính năng cho phép người dùng tạo link đăng nhập nhanh để đăng nhập trên nhiều thiết bị khác nhau mà không cần nhập mật khẩu.

Các bước cấu hình:

  1. Truy cập Admin Settings → Users trong hệ thống
  2. Tìm mục Enable Quick Login
  3. Bật toggle Enable Quick Login
  4. Lưu cấu hình

Cách sử dụng:

  1. Người dùng đăng nhập vào tài khoản
  2. Truy cập Đăng nhập nhanh từ menu sidebar hoặc header avatar menu
  3. Click Tạo link đăng nhập nhanh
  4. Hệ thống sẽ tạo một link đăng nhập duy nhất
  5. Copy link này và mở trên thiết bị khác
  6. Hệ thống sẽ tự động đăng nhập và đăng xuất tất cả các phiên đăng nhập khác

Thông số kỹ thuật:

  • Token Prefix: txasso_
  • Token Format: txasso_{hash}
  • URL: {SITE_URL}quick-login/auth?token={token}
  • Security: Token được lưu trữ trong database và chỉ có thể sử dụng một lần
  • Auto Logout: Khi đăng nhập bằng quick login, tất cả các phiên đăng nhập khác sẽ bị đăng xuất tự động

Lưu ý:

  • ⚠️ Cảnh báo: Không chia sẻ link đăng nhập nhanh với người khác
  • Link đăng nhập nhanh có thể bị thu hồi bất cứ lúc nào
  • Admin có thể bật/tắt tính năng này trong settings
  • Nếu tính năng bị tắt, menu sẽ ẩn và truy cập trực tiếp URL sẽ redirect về trang chủ

🔐 Đăng nhập bằng QR Code

📚 Tài liệu chính thức: docs.txahub.click/#qr-code-login

Mô tả: Tính năng cho phép người dùng đăng nhập vào hệ thống bằng cách quét QR code từ ứng dụng mobile. Tính năng này giúp đăng nhập nhanh chóng và an toàn mà không cần nhập mật khẩu.

ℹ️ Yêu cầu: Tính năng này yêu cầu ứng dụng mobile TXAHUB đã được cài đặt và đăng nhập trên thiết bị của bạn.

Cách sử dụng trên Web:

  1. Truy cập trang đăng nhập của hệ thống
  2. Click vào nút "Đăng nhập bằng QR Code" hoặc "Login with QR Code"
  3. Hệ thống sẽ hiển thị QR code trên màn hình
  4. Mở ứng dụng mobile TXAHUB trên điện thoại của bạn
  5. Trong ứng dụng, chọn tính năng "Quét QR Code" hoặc "Scan QR Code"
  6. Quét QR code hiển thị trên màn hình web
  7. Xác nhận đăng nhập trên ứng dụng mobile
  8. Hệ thống sẽ tự động đăng nhập và chuyển hướng bạn vào trang chủ

Cách sử dụng trên Mobile App:

  1. Mở ứng dụng TXAHUB trên điện thoại
  2. Đảm bảo bạn đã đăng nhập vào ứng dụng
  3. Vào menu hoặc tìm tính năng "Quét QR Code" / "Scan QR Code"
  4. Cho phép ứng dụng truy cập camera (nếu chưa cấp quyền)
  5. Quét QR code hiển thị trên màn hình web
  6. Xem lại thông tin đăng nhập và click "Xác nhận" / "Confirm"
  7. Đăng nhập sẽ được thực hiện tự động trên trình duyệt web

Tính năng tự động:

  • Auto-refresh QR code: QR code sẽ tự động được làm mới 5 giây trước khi hết hạn (thời gian hết hạn: 60 giây)
  • Polling status: Hệ thống tự động kiểm tra trạng thái QR code mỗi 2 giây
  • Auto redirect: Tự động chuyển hướng khi đăng nhập thành công
  • Thông báo trạng thái: Hiển thị thông báo rõ ràng về trạng thái QR code (đang chờ, đã quét, đã xác nhận, hết hạn)

API Endpoints:

Hệ thống cung cấp các API endpoints sau cho tính năng QR Code login:

  • POST /api/auth/qr/generate - Tạo QR code đăng nhập mới
    • Response: {"qr_token": "...", "expires_at": "..."}
  • GET /api/auth/qr/check?token={qr_token} - Kiểm tra trạng thái QR code
    • Response: {"status": "pending|scanned|confirmed|expired", "user_id": ...}
  • POST /api/auth/qr/scanAuth - Mobile app quét QR code
    • Body: {"qr_token": "...", "device_info": {...}}
    • Response: {"success": true, "user": {...}}
  • POST /api/auth/qr/confirmAuth - Mobile app xác nhận đăng nhập
    • Body: {"qr_token": "...", "confirm": true}
    • Response: {"success": true, "session_token": "..."}
  • GET /api/auth/qr/devicesAuth - Lấy danh sách thiết bị đã đăng nhập
    • Response: {"devices": [...]}

Database Schema:

Hệ thống sử dụng 2 bảng mới để quản lý QR Code login:

Bảng qr_sessions:
  • id - ID phiên QR code
  • qr_token - Token QR code duy nhất
  • status - Trạng thái: pending, scanned, confirmed, expired
  • user_id - ID người dùng (null nếu chưa xác nhận)
  • expires_at - Thời gian hết hạn
  • created_at - Thời gian tạo
  • updated_at - Thời gian cập nhật
Bảng user_devices:
  • id - ID thiết bị
  • user_id - ID người dùng
  • device_name - Tên thiết bị
  • device_type - Loại thiết bị (mobile, tablet, desktop)
  • device_info - Thông tin chi tiết thiết bị (JSON)
  • last_login_at - Thời gian đăng nhập cuối
  • created_at - Thời gian tạo

Models & Controllers:

  • QrSession Model: Quản lý phiên QR code, xử lý tạo token, kiểm tra trạng thái, cập nhật status
  • UserDevice Model: Quản lý lịch sử thiết bị đăng nhập của người dùng
  • QrAuthController: Xử lý tất cả các API endpoints cho QR login, bao gồm:
    • Generate QR code
    • Check QR status
    • Handle scan from mobile
    • Handle confirm from mobile
    • Get user devices list

Thông số kỹ thuật:

  • Thời gian hết hạn QR code: 60 giây
  • Thời gian auto-refresh: 5 giây trước khi hết hạn (tức là refresh sau 55 giây)
  • Polling interval: 2 giây (kiểm tra trạng thái mỗi 2 giây)
  • Token format: Random string được mã hóa an toàn
  • Security: QR token chỉ có thể sử dụng một lần, tự động hết hạn sau 60 giây

Hỗ trợ đa ngôn ngữ:

Hệ thống hỗ trợ đa ngôn ngữ cho các thông báo QR login, bao gồm:

  • Tiếng Việt
  • Tiếng Anh
  • Và các ngôn ngữ khác được cấu hình trong hệ thống

Tương thích:

✅ Backward Compatibility: Tính năng này hoàn toàn độc lập với hệ thống login hiện tại. Không có thay đổi breaking changes và tương thích ngược 100%.

Người dùng vẫn có thể sử dụng các phương thức đăng nhập truyền thống (email/password, social login, quick login) như bình thường.

Lưu ý bảo mật:

⚠️ Lưu ý:

  • QR code chỉ có hiệu lực trong 60 giây, sau đó sẽ tự động hết hạn
  • Mỗi QR code chỉ có thể sử dụng một lần
  • Đảm bảo bạn đang quét QR code từ trang web chính thức của hệ thống
  • Không chia sẻ QR code với người khác
  • Luôn kiểm tra thông tin đăng nhập trước khi xác nhận trên ứng dụng mobile

Troubleshooting:

  • QR code không hiển thị: Kiểm tra kết nối internet, thử refresh trang
  • Không quét được QR code: Đảm bảo camera có đủ ánh sáng, QR code rõ ràng, kiểm tra quyền truy cập camera
  • QR code hết hạn: QR code sẽ tự động refresh, chờ vài giây hoặc refresh trang
  • Đăng nhập không thành công: Kiểm tra bạn đã đăng nhập vào ứng dụng mobile, kiểm tra kết nối internet
  • Lỗi API: Kiểm tra logs trong uploads/logs/ hoặc liên hệ support

Support Key

Support Key được sử dụng để xác thực quyền nhận hỗ trợ kỹ thuật từ TXAHUB.

Định dạng Support Key

Support Key có định dạng:

TXAHUB-SUPPORT-YYYY-TYPE-SUFFIX

Trong đó:

  • YYYY: Năm (4 chữ số)
  • TYPE: Loại hỗ trợ:
    • PREMIUM: Cho license TXAVIP
    • STANDARD: Cho license TXAPRO
  • SUFFIX: 8 ký tự hex (A-F, 0-9)

Ví dụ Support Key

↑ Cho license TXAVIP

↑ Cho license TXAPRO

Cấu hình Support Key

  1. Điều hướng đến Bảng Điều khiển Quản trịCài đặt → Tab Support
  2. Nhập Support Key của bạn vào trường Support Key
  3. Hệ thống sẽ tự động kiểm tra định dạng và xác thực với API
  4. Nếu Support Key hợp lệ, bạn sẽ thấy thông tin về thời hạn hỗ trợ
  5. Lưu cài đặt

Lưu ý: Support Key phải khớp với loại license của bạn. TXAVIP cần PREMIUM, TXAPRO cần STANDARD.

Quan trọng: Support Key được cung cấp khi bạn mua sản phẩm. Nếu bạn không có Support Key, vui lòng liên hệ hỗ trợ qua email hoặc Facebook.

Hosting

Khuyến nghị Hosting

Để có hiệu suất tối ưu, chúng tôi khuyên dùng:

  • VPS/Dedicated Server: Cloudways, DigitalOcean, Hetzner, Vultr
  • Shared Hosting: Namecheap, Hostinger, SiteGround

Tên miền

NameCheap cho đăng ký tên miền, họ cung cấp giá tốt và giao diện đơn giản. Chúng tôi đã sử dụng họ từ khi bắt đầu TXAHUB.

Xử lý lỗi

Khi gặp lỗi trong quá trình sử dụng TXAHUB, bạn có thể xử lý theo các cách sau:

🔍 Báo lỗi qua Email

Nếu bạn gặp lỗi, hệ thống sẽ hiển thị mã lỗi trên trang. Bạn có thể báo lỗi cho admin thông qua email:

  1. Ghi lại mã lỗi: Khi gặp lỗi, trang sẽ hiển thị một mã lỗi (error code) hoặc thông báo lỗi chi tiết. Hãy copy mã lỗi này.
  2. Gửi email báo lỗi:
    • Gửi email đến địa chỉ hỗ trợ: support@txahub.click
    • Tiêu đề: [TXAHUB] Báo lỗi - Mã lỗi: [Mã lỗi của bạn]
    • Nội dung email bao gồm:
      • Mã lỗi (Error Code) đã copy từ trang
      • Mô tả chi tiết về lỗi
      • Bước thực hiện dẫn đến lỗi
      • Thông tin môi trường (PHP version, database version nếu có)
      • Screenshot (nếu có thể)

💡 Lưu ý: Mã lỗi giúp admin xác định nhanh chóng nguyên nhân và đưa ra giải pháp. Hãy đảm bảo bạn đã copy đầy đủ mã lỗi khi gửi email.

📦 Cập nhật phiên bản mới nhất

Nếu bạn không thể xác định được mã lỗi hoặc lỗi đã được sửa trong phiên bản mới, hãy cập nhật lên phiên bản mới nhất:

  1. Kiểm tra phiên bản hiện tại:
    • Đăng nhập vào Bảng Điều khiển Quản trị
    • Kiểm tra phiên bản tại Cài đặtTổng quan
  2. Tải phiên bản mới nhất:
  3. Cập nhật theo hướng dẫn:
    • Tham khảo phần Cập nhật trong tài liệu này
    • Đảm bảo đã sao lưu dữ liệu trước khi cập nhật
    • Làm theo các bước cập nhật từng bước

⚠️ Quan trọng: Luôn sao lưu (backup) dữ liệu và file trước khi cập nhật. Nếu bạn có Google Drive Backup đã được cấu hình, hệ thống sẽ tự động backup trước khi cập nhật.

🔄 Quy trình xử lý lỗi khuyến nghị

  1. Ghi lại mã lỗi: Copy mã lỗi từ trang web
  2. Kiểm tra tài liệu: Xem phần FAQ để tìm giải pháp nhanh
  3. Gửi email báo lỗi: Nếu không tìm thấy giải pháp, gửi email với mã lỗi
  4. Đợi phản hồi: Admin sẽ phản hồi và hướng dẫn giải quyết
  5. Cập nhật phiên bản: Nếu được thông báo, cập nhật lên phiên bản mới nhất

✅ Mẹo: Nhiều lỗi đã được sửa trong các phiên bản cập nhật. Hãy đảm bảo bạn luôn sử dụng phiên bản mới nhất để tránh các lỗi đã biết.

📞 Liên hệ hỗ trợ

Nếu bạn cần hỗ trợ thêm:

Khi liên hệ, vui lòng cung cấp:

  • License key của bạn (để xác thực)
  • Mã lỗi (nếu có)
  • Mô tả chi tiết vấn đề
  • Screenshot (nếu có thể)

Câu hỏi thường gặp

📝 Làm thế nào để cập nhật văn bản trên trang web?

Bất kỳ văn bản tĩnh nào từ trang web đều có thể được thay đổi từ Bảng Điều khiển Quản trị \-> Ngôn ngữ \-> {tên ngôn ngữ} \-> Trang Dịch ứng dụng.

Khuyến nghị tạo ngôn ngữ mới thay vì chỉnh sửa ngôn ngữ gốc, để nó không bị ghi đè khi cập nhật lên phiên bản mới.

✍️ Tại sao tôi không thể chỉnh sửa tất cả các chuỗi ngôn ngữ trong bảng điều khiển quản trị?

Điều này xảy ra vì cấu hình hosting hiện tại của bạn không cho phép gửi biểu mẫu với tất cả các trường dịch thuật hiện có.

Để khắc phục, bạn phải tăng biến PHP ini max_input_vars lên giá trị được đề cập trong Bảng Điều khiển Quản trị \-> Ngôn ngữ \-> {tên ngôn ngữ} \-> Trang Dịch ứng dụng.

Nếu bạn không có tùy chọn hoặc không biết cách tăng giá trị này, hãy liên hệ nhà cung cấp hosting của bạn.

🌎 Làm thế nào để dịch phần mềm sang ngôn ngữ khác?

Bạn có thể tạo gói ngôn ngữ mới và bắt đầu dịch từ Bảng Điều khiển Quản trị \-> Ngôn ngữ \-> Tạo ngôn ngữ \-> Trang Dịch ứng dụng.

Bạn cũng có tùy chọn nâng cao để sao chép trực tiếp tệp app/languages/english#en.php cho phía ứng dụng người dùng hoặc tệp app/languages/admin/english#en.php cho phía bảng điều khiển quản trị, tuân theo cùng khái niệm đặt tên cho tệp: language_name#language_code.php.

⚠️ Tại sao tôi nhận được 404 Not Found trên tất cả các liên kết?

Trong phần lớn các trường hợp, điều này do một trong những trường hợp sau:

  • Máy chủ Nginx - Bạn chưa thực hiện thiết lập Nginx đúng cách hoặc chưa thực hiện.
  • Máy chủ Apache
    • Bạn không tải lên tệp .htaccess.
    • Bạn không có quyền phù hợp (CHMOD 644) cho tệp .htaccess.
    • Nhà cung cấp máy chủ web của bạn không bật mod_rewrite cho Apache.
    • Tệp .htaccess tồn tại, nhưng nội dung không giống với tệp gốc từ sản phẩm của tôi.

⚠️ Tôi nhận được lỗi máy chủ nội bộ 503, tại sao?

  • Nếu bạn chạy máy chủ hỗ trợ .htaccess, một số máy chủ có thể không chấp nhận dòng đầu tiên của tệp .htaccess. Hãy thử xóa dòng đầu tiên trên tệp .htaccess.
  • Nếu bạn nhận được lỗi này khi gửi biểu mẫu, điều này có nghĩa là máy chủ web của bạn đã chặn yêu cầu. Hãy thử tắt mod_security, vì nó có thể kích hoạt dương tính giả, hoặc liên hệ nhà cung cấp máy chủ web của bạn.

🧟 Tôi nhận được đăng ký người dùng spam, làm thế nào để ngăn chặn chúng?

Đăng ký spam không thể được ngăn chặn hoàn toàn. Không trang web nào có thể hoàn toàn loại bỏ thư rác. TXAHUB cung cấp nhiều biện pháp bảo vệ spam, vì vậy bạn chỉ cần sử dụng chúng.

  • Xác nhận email - Đặt từ phần Bảng điều khiển quản trị \-> Cài đặt \-> Người dùng
  • Captcha - Đặt từ phần Bảng điều khiển quản trị \-> Cài đặt \-> Captcha
  • Chặn quốc gia - Đặt từ phần Bảng điều khiển quản trị \-> Cài đặt \-> Người dùng
  • Chặn domain email - Đặt từ phần Bảng điều khiển quản trị \-> Cài đặt \-> Người dùng
  • Tự động xóa người dùng chưa xác nhận / cũ - Đặt từ phần Bảng điều khiển quản trị \-> Cài đặt \-> Người dùng
  • Xóa hàng loạt người dùng - Đặt từ trang Bảng điều khiển quản trị \-> Người dùng. Trong trường hợp bạn muốn xóa nhiều người dùng cùng lúc.
  • Plugin Email Shield - Sử dụng các thuật toán tiên tiến và nhiều danh sách đen từ web để ngăn chặn đăng ký domain spam.

🗺️ Có sitemap không?

Bạn có thể truy cập sitemap bằng cách truy cập đường dẫn /sitemap trên website, chẳng hạn như https://example.com/sitemap.

📧 Email không được gửi / Tôi có lỗi với SMTP của mình.

Tất cả lỗi liên quan đến hệ thống gửi email đều do: Thông tin đăng nhập SMTP không chính xác, máy chủ SMTP không hoạt động đúng, hoặc máy chủ web chặn kết nối SMTP thực tế. Đối với bất kỳ vấn đề nào trong số này, hãy liên hệ nhà cung cấp SMTP hoặc máy chủ web của bạn.

✨ Làm thế nào để tùy chỉnh trang landing page index?

Chỉnh sửa cấu trúc & thành phần của trang được thực hiện từ tệp themes/altum/views/index/index.php.

Chỉnh sửa văn bản được thực hiện như đã đề cập ở trên trong phần 📝 Làm thế nào để cập nhật văn bản trên trang web?.

Chỉnh sửa hình ảnh được thực hiện trực tiếp qua Bảng điều khiển quản trị \-> Cài đặt \-> Trang Hình ảnh tùy chỉnh.

Để tắt trang landing page gốc để chuyển hướng đến trang landing page tùy chỉnh, bạn phải vào trang Bảng điều khiển quản trị \-> Cài đặt và tìm trường Custom landing page URL nơi bạn có thể thêm URL trang landing page mới của mình.

🧑‍💻 Tôi cố gắng thực hiện yêu cầu API, nhưng nhận được "The request is missing the Bearer Authentication header".

Bạn đang không gửi header Bearer Authentication đúng cách, hoặc nhà cung cấp hosting của bạn đang loại bỏ header đó trước khi nó đến TXAHUB. Trong trường hợp này, bạn cần liên hệ nhà cung cấp hosting của mình, hoặc bạn có thể tự thử một cách khắc phục nhanh, có thể hoạt động với một số người: Stack Overflow - Apache strips Authorization header

🎨 Làm thế nào để tùy chỉnh màu sắc hoặc các khía cạnh thiết kế (CSS) khác của trang web?

Có thể thực hiện theo nhiều cách, tùy thuộc vào kiến thức CSS/SCSS thực tế của bạn.

  • Cách dễ nhất: Bạn có thể chỉnh sửa màu chủ đề trực tiếp trong Bảng điều khiển quản trị \-> Cài đặt \-> Trang Chủ đề.
  • Bạn có thể viết CSS tùy chỉnh của riêng mình, ghi đè các quy tắc đã tồn tại, và dán vào trường Bảng điều khiển quản trị \-> Cài đặt \-> CSS tùy chỉnh.
  • Bạn có thể thay thế màu thủ công thông qua các tệp bootstrap CSS trong thư mục themes/altum/assets/css/.

© Làm thế nào để thay đổi/xóa branding TXAHUB mặc định ở footer?

Bạn có thể làm điều này qua Bảng điều khiển quản trị \-> Tài nguyên, Trang.

💳 Tại sao tôi không thấy các thanh toán được ghi lại trong danh sách thanh toán sau khi thực hiện thanh toán thử nghiệm?

Điều này có thể xảy ra vì bạn đã bỏ qua hoặc cấu hình sai một bước khi cấu hình cổng thanh toán.

🧑‍💼 Tôi mất mật khẩu quản trị viên & không thể đặt lại, phải làm gì?

Trong trường hợp này, bạn cần truy cập trình quản lý cơ sở dữ liệu của mình (chẳng hạn như phpMyAdmin), chọn cơ sở dữ liệu của sản phẩm đã cài đặt, đi đến bảng users, tìm tài khoản quản trị viên của bạn và đặt mật khẩu thành $2y$12$KCOWATm7xY1r8g4zAlhmH.y36XJjS/iaAscA42i4sQOgqvL0LzzT2, tương đương với 2311 là mật khẩu. Bây giờ bạn cần tìm uploads/cache/ từ các tệp cài đặt sản phẩm và xóa thư mục bạn thấy bên trong.

🔐 Tôi đã cấu hình captcha với API key sai, bây giờ tôi không thể đăng nhập. Tôi có thể làm gì?

Trong trường hợp này, bạn cần truy cập trình quản lý cơ sở dữ liệu của mình (chẳng hạn như phpMyAdmin), chọn cơ sở dữ liệu của sản phẩm đã cài đặt, đi đến bảng settings, tìm khóa captcha và chỉnh sửa value như sau:

Tìm phần "login_is_enabled":true của văn bản và chỉnh sửa thành "login_is_enabled":false.

Bây giờ bạn cần tìm uploads/cache/ từ các tệp cài đặt sản phẩm và xóa thư mục bạn thấy bên trong.

🖥️ Làm thế nào để di chuyển sang hosting khác?

Đầu tiên bạn cần sao lưu cả các tệp và cơ sở dữ liệu của cài đặt hiện tại. Sau đó bạn cần thực hiện di chuyển thực tế sang hosting khác với các tệp và cơ sở dữ liệu đã sao lưu, và sau đó, bạn chỉ cần chỉnh sửa tệp config.php và đảm bảo tất cả các chi tiết bên trong vẫn chính xác.

🔑 Tôi không thể kích hoạt license key, phải làm gì?

Nếu bạn gặp vấn đề khi kích hoạt license key:

  • Đảm bảo bạn đã nhập đúng license key (format: txapro_[a-zA-Z0-9_]{20,} hoặc txavip_[a-zA-Z0-9_]{20,})
  • Kiểm tra kết nối internet của bạn
  • Đảm bảo domain của bạn khớp với domain đã đăng ký license
  • Xóa cache bằng cách xóa thư mục uploads/cache/ và thử lại
  • Nếu vẫn không được, vui lòng liên hệ hỗ trợ qua email hoặc Facebook

🔑 License key của tôi đã hết hạn, tôi cần làm gì?

Nếu bạn sở hữu license TXAPRO và license đã hết hạn, tùy thuộc vào tình huống của bạn:

✅ Trường hợp 1: Vẫn có thể truy cập vào trang quản trị

Nếu bạn vẫn có thể đăng nhập vào Bảng Điều khiển Quản trị:

  1. Đăng nhập vào Bảng Điều khiển Quản trị
  2. Điều hướng đến Cài đặt → Tab License
  3. Nhấp vào nút Gia hạn License để thanh toán gia hạn
  4. Sau khi thanh toán thành công, license sẽ tự động được cập nhật
❌ Trường hợp 2: Không thể truy cập vào trang quản trị

Nếu bạn không thể đăng nhập vào Bảng Điều khiển Quản trị:

  1. Hệ thống sẽ tự động chuyển hướng bạn đến trang nhập license key mới
  2. Trên trang này, bạn sẽ thấy nút Mua license mới
  3. Nhấp vào nút Mua license mới để chuyển đến trang thanh toán
  4. Sau khi mua license mới thành công, quay lại trang nhập license key
  5. Nhập license key mới của bạn vào trường và nhấp Kích hoạt
  6. Sau khi kích hoạt thành công, bạn sẽ được chuyển hướng về trang quản trị

💡 Mẹo: Nếu bạn gặp khó khăn trong quá trình gia hạn hoặc mua license mới, vui lòng liên hệ hỗ trợ qua email hoặc Facebook để được hỗ trợ.

🔄 Tôi đã gia hạn nhưng thời gian và key không được cập nhật lại, cần làm gì?

Nếu bạn đã thanh toán gia hạn nhưng license key và thời gian không được cập nhật, hãy thử các bước sau:

  1. Xóa cache:
    • Xóa thư mục uploads/cache/ từ các tệp cài đặt sản phẩm
    • Hoặc đợi tối đa 1 giờ để hệ thống tự động làm mới (auto-refresh) cho license TXAPRO
  2. Kiểm tra lại license:
    • Đăng nhập vào Bảng Điều khiển Quản trị
    • Điều hướng đến Cài đặt → Tab License
    • Kiểm tra thông tin license hiện tại
  3. Kích hoạt lại license:
    • Nhập lại license key của bạn vào trường License Key
    • Nhấp Kích hoạt để hệ thống kiểm tra và cập nhật lại
  4. Kiểm tra kết nối:
    • Đảm bảo server của bạn có kết nối internet ổn định
    • Kiểm tra xem server có thể kết nối đến API license không
  5. Liên hệ hỗ trợ:
    • Nếu đã thử tất cả các bước trên nhưng vẫn không được cập nhật, vui lòng liên hệ hỗ trợ qua email support@txahub.click hoặc Facebook
    • Cung cấp thông tin: License key, email đã thanh toán, thời gian thanh toán, và screenshot màn hình license

💡 Lưu ý: Đối với license TXAPRO, hệ thống sẽ tự động làm mới license mỗi giờ. Nếu bạn vừa gia hạn, có thể cần đợi tối đa 1 giờ để thông tin được cập nhật tự động.

⚠️ Quan trọng: Nếu bạn đã thanh toán gia hạn nhưng license không được cập nhật sau 24 giờ, vui lòng liên hệ hỗ trợ ngay lập tức với thông tin thanh toán để được xử lý.

🔐 Tôi đã cấu hình Passkey nhưng không hoạt động, tại sao?

Passkey yêu cầu một số điều kiện để hoạt động:

  • HTTPS: Website phải có SSL certificate (HTTPS)
  • Trình duyệt hỗ trợ: Chrome, Firefox, Safari, Edge (phiên bản mới)
  • Thiết bị hỗ trợ: Thiết bị phải hỗ trợ WebAuthn (hầu hết thiết bị hiện đại)
  • Cấu hình đúng: Đảm bảo đã bật Passkey Login trong cài đặt

Nếu vẫn không hoạt động, hãy kiểm tra console của trình duyệt để xem lỗi cụ thể.

🔑 Tôi không thể nhập Support Key, tại sao?

Support Key phải đúng định dạng:

TXAHUB-SUPPORT-YYYY-TYPE-SUFFIX

Ví dụ:

Đảm bảo:

  • Support Key phải khớp với loại license của bạn (TXAVIP cần PREMIUM, TXAPRO cần STANDARD)
  • Đã kích hoạt license key trước khi nhập Support Key
  • Nhập đúng định dạng (chữ hoa, dấu gạch ngang, v.v.)

💾 Google Drive Backup không hoạt động, phải làm gì?

Nếu Google Drive Backup không hoạt động, hãy kiểm tra theo thứ tự ưu tiên sau:

⚠️ QUAN TRỌNG NHẤT: Đảm bảo license của bạn là TXAVIP, không phải TXAPRO. Google Drive Backup chỉ khả dụng với license TXAVIP. Nếu bạn đang sử dụng TXAPRO, bạn cần nâng cấp lên TXAVIP để sử dụng tính năng này.

Sau khi đảm bảo license là TXAVIP, kiểm tra các điều kiện sau:

  • Đảm bảo đã cấu hình Google Drive API đúng cách (Client ID và Client Secret)
  • Đã kết nối Google Drive thành công (nhấp "Kết nối Google Drive")
  • Đã bật "Auto Backup Passkeys" trong cài đặt passkey
  • Đã có ít nhất một Passkey được đăng ký
  • Kiểm tra quyền truy cập Google Drive trong Google Cloud Console

Nếu vẫn không hoạt động sau khi đã kiểm tra tất cả các điều kiện trên, hãy kiểm tra log trong admin panel để xem lỗi cụ thể.