Cơ sở tri thức

Bán dịch vụ lưu trữ Zinn® từ WHMCS

Cài đặt mô-đun cấp phép Zinn Digital® miễn phí trong WHMCS: khóa API và bảy quyền mà khóa này cần, nơi chứa thư mục mô-đun và lý do tại sao tên của thư mục lại quan trọng, các trường sản phẩm và chức năng thực sự của từng nút WHMCS.

Mô-đun Zinn Digital® biến các nút bấm của chính WHMCS thành những hành động thực tế trên nền tảng của chúng tôi. Một đơn hàng sẽ khởi tạo dịch vụ lưu trữ cho khách hàng của quý vị. Tính năng tự động xử lý hóa đơn quá hạn của WHMCS sẽ tạm ngưng dịch vụ đó. Việc đánh dấu hóa đơn đã thanh toán sẽ mở khóa lại dịch vụ. Thao tác hủy sẽ lên lịch xóa. Và khách hàng của quý vị sẽ nhận được một nút Log in to hosting panel trong khu vực khách hàng của họ để đăng nhập trực tiếp.

Mô-đun này miễn phí, được cấp phép theo GPL-2.0-or-later, và không có quyền truy cập đặc quyền nào vào nền tảng của chúng tôi: mọi lệnh gọi mà mô-đun thực hiện đều là một điểm cuối có tài liệu hướng dẫn mà quý vị có thể tự gọi bằng khóa API của chính mình.

Trước khi quý vị bắt đầu

Quý vị cần hai thứ, và điều thứ hai thường khiến mọi người bất ngờ.

  1. Một tài khoản đại lý Zinn® có chương trình đang hoạt động. Đăng ký tại
  2. zinndigital.com và bật tính năng bán lại.

  3. Một gói đại lý còn hạn mức trang web. Các trang web mà khách hàng của quý vị đặt mua sẽ tính vào gói của quý vị,
  4. vì vậy quý vị cần một gói vẫn còn dung lượng trống.

⚠️ Test Connection không thể cho quý vị biết liệu một đơn hàng có thành công hay không. Nó chỉ đọc chương trình của quý vị và không khởi tạo bất kỳ tài nguyên nào, vì vậy nó sẽ báo cáo một tài khoản active hoàn toàn bình thường nhưng chưa thể bán bất cứ thứ gì. Nếu đơn hàng đầu tiên của quý vị thất bại với lỗi "This organization has no hosting plan, so it cannot host a site yet", thì đó chính là nguyên nhân — hãy mua hoặc mở rộng gói đại lý của quý vị rồi đặt lại đơn hàng. Mô-đun hoàn toàn không có lỗi gì.

1. Tạo khóa API

Trong bảng điều khiển Zinn® của quý vị, hãy mở mục API keys và tạo một khóa với chính xác mười một quyền sau:

QuyềnLý do cần thiết
org.createMở tài khoản Zinn® cho khách hàng của quý vị ở đơn hàng đầu tiên của họ.
org.readĐọc các tài khoản khách hàng của quý vị.
sites.createKhởi tạo trang web.
sites.viewĐọc thông tin dịch vụ và mức độ sử dụng của nó.
sites.deleteChấm dứt dịch vụ.
reseller.viewLiệt kê những gì quý vị đã bán, đồng thời đọc dung lượng đĩa và băng thông.
reseller.provisionTạm ngưng, mở khóa, đăng nhập khách hàng, thiết lập gói và thay đổi gói dịch vụ của họ.
billing.viewĐọc chi phí nâng cấp trước khi thực hiện.
sites.manageXóa bộ nhớ đệm và tạo bản sao lưu từ các nút bấm.
sites.panel_accessĐổi mật khẩu quản trị viên WordPress.
hosting.php.manageChuyển đổi phiên bản PHP khi nâng cấp hoặc hạ cấp.

⛔ Không cấp quyền reseller.manage. Một khóa được dán vào bảng điều khiển thanh toán chỉ nên có quyền tạm giữ khách hàng do chưa thanh toán và đăng nhập cho họ. Khóa đó không được phép đọc và ghi đè thông tin xác thực cổng thanh toán của chính quý vị. Quyền reseller.provision tồn tại để quý vị không cần phải cấp quyền hạn lớn hơn này. ⛔ org.create không phải là tùy chọn. Nếu không có quyền này, mô-đun có thể đọc các tài khoản của quý vị nhưng không thể mở tài khoản mới, do đó Test Connection vẫn thành công nhưng đơn hàng đầu tiên sẽ trả về mã 403. ⛔⛔ Hãy cấp toàn bộ các quyền trong bảng, và lưu ý rằng Test Connection không thể báo cho quý vị biết nếu quý vị chưa cấp đủ. Nó chỉ đọc chương trình đại lý của quý vị và không khởi tạo tài nguyên nào, do đó nó vẫn báo xanh đối với một khóa bị thiếu bất kỳ quyền nào trong số này. Thay vào đó, những gì quý vị nhận được sẽ là lỗi 403 trên đúng thao tác mà quyền bị thiếu đó đảm nhiệm, nhiều tháng sau, từ một khách hàng.

2. Cài đặt mô-đun

  1. Tải xuống mô-đun và giải nén.
  2. Tải thư mục zinn lên bản cài đặt WHMCS của quý vị sao cho tệp mô-đun nằm tại
  3. modules/servers/zinn/zinn.php.

⛔ Thư mục bắt buộc phải có tên là zinn. WHMCS suy ra tên hàm của mô-đun khởi tạo dịch vụ từ tên thư mục của nó, vì vậy việc đổi tên thành zinn-whmcs hoặc zinndigital sẽ tạo ra một mô-đun mà WHMCS liệt kê, cho phép quý vị chọn, nhưng sau đó không bao giờ gọi đến — mà không có bất kỳ thông báo lỗi nào ở đâu. Tệp zip vốn đã giải nén ra đúng tên; quý vị chỉ cần không đổi tên nó.

3. Thêm máy chủ

Trong WHMCS: Configuration → System Settings → Servers → Add New Server.

  • Name: bất kỳ tên nào, ví dụ: Zinn Digital®
  • Hostname: api.zinndigital.com
  • Type: Zinn Digital®
  • Password: khóa API của quý vị từ bước 1

⛔ Khóa được nhập vào trường Password, nơi WHMCS lưu trữ dưới dạng mã hóa. Đừng đặt khóa vào tùy chọn cấu hình sản phẩm — những tùy chọn đó là văn bản thuần túy trong cơ sở dữ liệu và hiển thị cho mọi quản trị viên, trong khi thông tin xác thực này có thể tạo và xóa dịch vụ lưu trữ của khách hàng của quý vị.

Nhấn Test Connection. Thao tác này thực hiện một lệnh gọi thực tế và báo cáo phản hồi từ nền tảng của chúng tôi, thay vì chỉ kiểm tra xem các trường đã được điền hay chưa.

4. Tạo sản phẩm

Configuration → System Settings → Products/Services, sau đó đặt Module Settings thành máy chủ quý vị vừa thêm. Các trường gồm có:

TrườngBắt buộcÝ nghĩa
Product linecóDòng sản phẩm Zinn® mà quý vị đang bán — mainstream (managed WordPress), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail hoặc reseller.
StackcóCấu hình sẽ được xây dựng: wordpress (mặc định), woocommerce, php, static, node, one_click, headless_cms, nextcloud hoặc owncloud.
ApplicationkhôngChỉ dành cho các stack one_click và headless_cms — ứng dụng nào cần cài đặt. Việc chỉ định ứng dụng trên bất kỳ stack nào khác sẽ bị từ chối, vì stack đó đã tự quyết định những gì được cài đặt.
PHP versionkhôngví dụ: 8.3. Để trống để dùng phiên bản mặc định của dòng sản phẩm. Một phiên bản mà dòng sản phẩm không cung cấp sẽ bị từ chối kèm theo danh sách các phiên bản được hỗ trợ.
Plan codecóGói Zinn® mà sản phẩm này bán. Lệnh GET /v1/reseller/prices sẽ liệt kê các gói của quý vị. Đơn hàng không có mã này sẽ bị từ chối — xem cảnh báo bên dưới.
Billing intervalkhôngmonthly (mặc định) hoặc annual — chu kỳ phát hành dòng sản phẩm bán sỉ của quý vị cho khách hàng này. Số tiền quý vị tính cho khách hàng của chính mình được thiết lập trên sản phẩm WHMCS và không bị ảnh hưởng.

⛔⛔ Plan code là bắt buộc, và đơn hàng không có mã này sẽ bị từ chối một cách có chủ đích. Cho đến ngày 2026-09-01, trường này chỉ mang tính hình thức và không có gì đọc nó, dẫn đến việc mô-đun đặt mua gói lưu trữ hoàn toàn không có gói nào — và mọi hậu quả của việc đó đều diễn ra trong âm thầm. Bảng sao kê bán sỉ của quý vị được tạo từ các đăng ký đang hoạt động của khách hàng, vì vậy không hề có dòng nào cho dịch vụ đó và quý vị không bị lập hóa đơn bất kỳ khoản nào trong suốt thời gian dịch vụ hoạt động; khách hàng của quý vị không được kế thừa bất kỳ hạn mức nào, do đó không có hạn mức dung lượng đĩa hoặc số lượng tệp nào được áp dụng cho trang web của họ; và Change Package không có gì để thay đổi, do đó giao dịch nâng cấp mà quý vị đã bán không thể thực hiện được. Trang web vẫn được khởi tạo và hoạt động hoàn hảo trong suốt thời gian đó.

Hiện tại mô-đun sẽ từ chối đơn hàng thay vì tiếp tục, bởi vì không có gói an toàn nào để mô-đun tự đoán: việc tự đoán sẽ khởi tạo dịch vụ lưu trữ trên một gói mà quý vị không hề chọn và có thể chưa định giá, và — khác với việc bị từ chối mà quý vị có thể thấy ngay lập tức — điều này sẽ chỉ lộ ra khi bảng sao kê được gửi tới, nếu có.

Hãy đặt Auto Setup thành bất kỳ tùy chọn nào quý vị muốn — mô-đun có tính chất lũy đẳng đối với ID dịch vụ WHMCS, vì vậy việc thử khởi tạo lại sẽ trả về cùng một trang web thay vì tính phí quý vị cho một trang web thứ hai.

Tác vụ của từng hành động WHMCS

Hành động WHMCSĐiều gì diễn ra ở phía chúng tôi
CreateTạo tài khoản Zinn® của khách hàng (hoặc sử dụng lại tài khoản họ đã có) và khởi tạo trang web của họ.
SuspendĐưa trang web vào trạng thái tạm giữ do chưa thanh toán. Nội dung được giữ lại; không có gì bị xóa.
UnsuspendMở khóa tạm giữ của quý vị.
TerminateLên lịch xóa trang web, kèm theo một khoảng thời gian ân hạn. Ngày xóa sẽ hiển thị trong khu vực khách hàng.
Usage updateLàm mới thông tin dung lượng đĩa và băng thông trên mỗi dịch vụ, mỗi ngày một lần.
Log in to hosting panelMở một liên kết đăng nhập một lần, sử dụng một lần trực tiếp vào bảng điều khiển của khách hàng.
Change PackageNâng cấp hoặc hạ cấp dịch vụ. Chuyển đổi gói và phiên bản PHP nếu sản phẩm mới có chỉ định.
Change PasswordThiết lập mật khẩu của quản trị viên WordPress. Ô này không xuất hiện trên các stack không có tài khoản như vậy.
RenewXác nhận dịch vụ vẫn tồn tại. Dịch vụ lưu trữ Zinn® mang tính liên tục, vì vậy không có thời hạn từ xa nào cần gia hạn.
Sync Usage / Purge Cache / Take BackupCác nút trên trang dịch vụ của quản trị viên. Khách hàng của quý vị sẽ nhận được Purge Cache và Take Backup trong khu vực khách hàng của họ.
Service tabTrạng thái, gói, dung lượng đĩa, băng thông, lịch xóa (nếu có), và ai là người đã đặt lệnh tạm ngưng.
ImportListAccounts đọc từng trang, vì vậy quá trình nhập dữ liệu không thể âm thầm dừng lại ở trang đầu tiên.

Nâng cấp: ai tính phí ai

Khách hàng của quý vị không bao giờ bị Zinn® lập hóa đơn, dù là khi đặt hàng hay khi nâng cấp. Quý vị tính phí họ thông qua WHMCS; chúng tôi tính phí quý vị, trên bảng sao kê bán sỉ của quý vị. Vì vậy, một thao tác Change Package sẽ chuyển đổi các quyền lợi của khách hàng và dòng mục trên bảng sao kê tiếp theo của quý vị mà không chạm vào thẻ thanh toán — WHMCS đã thu tiền của khách hàng và tự tính toán phần chi phí theo tỷ lệ tương ứng.

Dịch vụ thứ hai của một khách hàng. Trên cùng một gói, đó là một trang web khác thuộc hạn mức trang web của chính gói đó, và không có quyền lợi nào phát sinh thêm. Trên một gói khác, yêu cầu sẽ bị từ chối: việc thay thế gói đang hoạt động sẽ khiến một trong hai dịch vụ không được lập hóa đơn. Quý vị hãy bán cả hai trên cùng một gói, hoặc thiết lập khách hàng thành một hồ sơ khách hàng riêng biệt trong WHMCS.

Change Password chỉ tồn tại cho WordPress. Dịch vụ lưu trữ Zinn® không có "mật khẩu dịch vụ" duy nhất — khách hàng của quý vị truy cập vào bảng điều khiển của họ bằng nút đăng nhập — và một trang web php hoặc static không có tài khoản ứng dụng nào để thay đổi. WHMCS ẩn hoàn toàn ô này thay vì hiển thị một ô không thể hoạt động.

Ba phản hồi mà quý vị không được gộp làm hai

  • Unsuspend có thể trả về một lời từ chối. Điều đó có nghĩa là trang web đã bị đội ngũ chống lạm dụng của chúng tôi tạm ngưng,
  • chứ không phải bởi quý vị, và không bảng điều khiển thanh toán nào được phép mở khóa. Thông báo nêu rõ điều đó; hãy báo lại cho quản trị viên của quý vị thay vì thử lại.

  • Terminate lên lịch xóa chứ không thực hiện xóa ngay. Ngày xóa được trả về dưới dạng
  • pending_deletion_at và khu vực khách hàng sẽ hiển thị thông tin này. Việc thông báo với khách hàng rằng dữ liệu của họ đã bị xóa trong khi thực tế chưa bị xóa còn tệ hơn là không nói gì.

  • Dung lượng đĩa và băng thông có thể ở trạng thái không xác định, và không xác định không có nghĩa là bằng không. Khi chúng tôi không thể lấy
  • số liệu, mô-đun sẽ giữ nguyên con số đó thay vì ghi 0 — nếu không, WHMCS sẽ hiển thị cho khách hàng của quý vị một thanh mức sử dụng trống rỗng đầy yên tâm cho một trang web mà chúng tôi chưa hề có số liệu.

Khắc phục sự cố

Test Connection thành công nhưng đơn hàng đầu tiên thất bại với lỗi phân quyền. Khóa API bị thiếu quyền org.create. Mô-đun phải mở tài khoản của khách hàng trước khi có thể tạo trang web cho họ.

Một đơn hàng thất bại với thông báo tổ chức không có gói lưu trữ nào. Gói đại lý của quý vị không còn hạn mức trang web, hoặc quý vị chưa sở hữu gói nào. Xem mục Trước khi quý vị bắt đầu ở trên.

Một đơn hàng thất bại có nhắc đến stack. Trường Stack trên sản phẩm đang bị trống hoặc chỉ định một cấu hình mà chúng tôi không hỗ trợ xây dựng. Hãy đặt trường này thành wordpress trừ khi quý vị đang bán một cấu hình khác.

Các yêu cầu hủy dịch vụ đang thất bại. Hãy đảm bảo quý vị đang sử dụng mô-đun phiên bản 1.0.0 trở lên. Các bản dựng trước đó không gửi xác nhận xóa và mọi lệnh chấm dứt đều bị từ chối, khiến dịch vụ tiếp tục chạy và bị tính phí.

Một lời từ chối có nêu tên trường. Các lỗi xác thực của chúng tôi sẽ nêu tên trường và lý do trong ngoặc đơn sau thông báo, ví dụ: (php_version: 7.2 is not offered on this product line). Đó là phần trọng tâm để xử lý — câu ở phía trước nó được cố ý viết một cách chung chung.

Xác minh tệp tải xuống của quý vị

Mọi tệp lưu trữ đều được phân phối qua TLS từ chính tên miền máy chủ của chúng tôi và không bao giờ chuyển hướng đến một máy chủ của bên thứ ba. Mã băm SHA-256 của tệp được in bên cạnh liên kết tải xuống trên trang tải xuống. Hãy so sánh mã này sau khi tải xuống:

  • macOS hoặc Linux: shasum -a 256 zinn-whmcs-1.0.0.zip
  • Windows: certutil -hashfile zinn-whmcs-1.0.0.zip SHA256

Quý vị không sử dụng WHMCS?

Chúng tôi có mô-đun HostBill và một ứng dụng khách PHP dạng tệp đơn lẻ cho mọi hệ thống khác, cả hai đều miễn phí và đều nằm trên cùng trang tải xuống. Mọi điểm cuối mà các mô-đun sử dụng đều có trong tài liệu tham khảo API.

Mới nhất từ blog

Những gì chúng tôi đã viết về lưu trữ web, SEO và vận hành trang web ở quy mô lớn.

SEO và xây dựng liên kết từ tầng lưu trữ: Góc nhìn của nhà vận hành năm 2026

Cách dịch vụ lưu trữ định hình việc lập chỉ mục và giá trị liên kết (link equity) vào năm 2026: giữ cho các trang luôn được lập chỉ mục, kiểm tra kỹ lưỡng các tên miền cũ trước khi xây dựng, xây dựng liên kết mà không để lại dấu vết (footprint), và một cái nhìn thẳng thắn về những gì cơ sở hạ tầng có thể và không thể làm cho SEO.

Đọc bài viết →

Giúp WordPress nhanh chóng và an toàn: Danh sách kiểm tra hiệu suất và plugin

Danh sách kiểm tra thực tế cho một trang WordPress nhanh và an toàn: lưu vào bộ nhớ đệm ở cấp độ máy chủ, bộ nhớ đệm đối tượng cho từng trang web, số ít plugin đáng sử dụng, duy trì ngăn xếp công nghệ luôn mới nhất và các trang WooCommerce mà quý vị tuyệt đối không bao giờ được lưu vào bộ nhớ đệm.

Đọc bài viết →

Cách chọn dịch vụ lưu trữ web được quản lý vào năm 2026: Hướng dẫn cho người mua

Điều thực sự tạo nên sự khác biệt giữa dịch vụ lưu trữ được quản lý tốt và một máy chủ giá rẻ có bảng điều khiển — di chuyển dữ liệu, sao lưu, cách ly, bộ nhớ đệm thực sự và khả năng mở rộng trung thực — và cách đánh giá dịch vụ đó trước khi bạn cam kết.

Đọc bài viết →

Đọc blog →

Vẫn gặp khó khăn?

Hỗ trợ được bao gồm trong mọi gói, bộ phận chăm sóc khách hàng hoạt động 24 giờ một ngày và quý khách có thể viết thư cho chúng tôi bằng bất kỳ ngôn ngữ nào trong số 58 ngôn ngữ của chúng tôi — chúng tôi sẽ trả lời quý khách bằng ngôn ngữ của quý khách.

Liên hệ hỗ trợ → Tất cả bài viết →