Trung tâm kiến thức

Bán dịch vụ lưu trữ Zinn® từ hệ thống của riêng bạn

Quản lý dịch vụ lưu trữ Zinn từ bảng thanh toán, trang web WordPress hoặc tập lệnh của riêng bạn: nhận khóa API, thực hiện lệnh gọi đầu tiên và sáu lệnh gọi tạo nên toàn bộ quá trình tích hợp.

Bạn đại lý bán lại dịch vụ hosting của chúng tôi. Khách hàng của bạn là của bạn: giá của bạn, hóa đơn của bạn, nhà cung cấp thanh toán của bạn. Đây là cách bạn vận hành nền tảng của chúng tôi từ bất kỳ hệ thống nào bạn đang chạy — bảng điều khiển thanh toán, trang web WordPress của riêng bạn hoặc một đoạn mã script.

Những gì khách hàng của bạn thực sự nhìn thấy

Trước khi đi vào cơ chế: khách hàng của bạn không bao giờ phải nhìn thấy chúng tôi. Có ba giao diện và bạn chọn giao diện muốn sử dụng.

| Giao diện | Thuộc sở hữu của ai | |---|---| | Bảng điều khiển hosting, trên tên miền của riêng bạn | Thiết lập tên miền bảng điều khiển tại Bán lại → Thương hiệu của bạn và khách hàng của bạn sẽ đăng nhập tại panel.yourcompany.com với logo và màu sắc của bạn. Cùng một bảng điều khiển, nhưng mang địa chỉ của bạn. | | Trang web của riêng bạn | Plugin WordPress sẽ tích hợp tính năng tìm kiếm tên miền và liên kết đăng nhập một cú nhấp chuột vào trang web của bạn, đồng thời xử lý đơn hàng thông qua trang thanh toán WooCommerce của chính bạn. | | Bảng điều khiển thanh toán của bạn | WHMCS hoặc HostBill vẫn là cổng giao tiếp chính; module sẽ khởi tạo dịch vụ ở phía sau và nút trong khu vực khách hàng sẽ đăng nhập trực tiếp cho họ vào dịch vụ hosting. |

⛔ Dù bạn chọn cách nào, bạn là bên bán hàng trên giấy tờ đối với khách hàng của mình: giá của bạn, hóa đơn của bạn, mã số thuế VAT của bạn, nhà cung cấp thanh toán của bạn. Chúng tôi tính phí bạn, mỗi tháng một lần, theo giá bán sỉ.

Sau khi bạn đã đặt tên miền cho bảng điều khiển, hãy nhập tên miền đó vào trường Địa chỉ bảng điều khiển của plugin WordPress và không nhập vào bất kỳ nơi nào khác — các liên kết đăng nhập mà API này tạo ra sẽ tự động đi theo địa chỉ đó.

Bốn phương thức truy cập

Có bốn phương thức truy cập và tất cả đều thực hiện cùng một chức năng bên dưới hệ thống:

| | Dành cho | |---|---| | Module WHMCS | Cửa hàng WHMCS | | Module HostBill | Cửa hàng HostBill | | Plugin WordPress | Bán hàng từ trang web WordPress hoặc WooCommerce của riêng bạn | | API | Bất kỳ hệ thống nào khác — Blesta, hệ thống nội bộ, script cron |

1. Lấy một API key

Trong bảng điều khiển của bạn, đi tới API keys và tạo một khóa mới. Chỉ cấp cho nó những quyền hạn thực sự cần thiết:

| Quyền hạn | Lý do | |---|---| | org.read | Đọc thông tin tài khoản khách hàng của bạn | | sites.create | Khởi tạo một trang web | | sites.view | Đọc thông tin một dịch vụ | | sites.delete | Hủy dịch vụ | | reseller.view | Liệt kê các dịch vụ của bạn và xem mức độ sử dụng | | reseller.provision | Tạm dừng, mở lại và đăng nhập cho khách hàng |

Không cấp quyền reseller.manage cho một tích hợp. Quyền đó cho phép chỉnh sửa bảng giá và thông tin cổng thanh toán của chính bạn. Quyền reseller.provision tồn tại chính là để một khóa bạn dán vào bảng điều khiển thanh toán hoặc trang web không cần đến quyền quản trị đó.

Khóa chỉ hiển thị một lần. Hãy lưu trữ nó ở nơi bạn lưu các thông tin đăng nhập khác — tuyệt đối không để trong tệp mà máy chủ web của bạn công khai ra ngoài.

2. Thực hiện lệnh gọi đầu tiên

curl https://api.zinndigital.com/v1/reseller/services \
  -H "Authorization: Bearer zdk_live_…"

Lệnh đó sẽ trả về mọi dịch vụ bạn đã khởi tạo, mỗi dòng tương ứng với một trang web, kèm theo thông tin khách hàng sở hữu, trạng thái và mức giá bạn thu của họ. Trên một tài khoản mới, đây là một danh sách rỗng — đó là câu trả lời đúng, không phải là lỗi.

3. Toàn bộ quá trình tích hợp, trong sáu lệnh gọi

KHI                                 LỆNH GỌI
đơn hàng được thanh toán            POST   /v1/orgs                                   một lần cho mỗi KHÁCH HÀNG
                                    POST   /v1/sites                                  một lần cho mỗi DỊCH VỤ
họ chưa thanh toán                  POST   /v1/reseller/services/{siteId}/suspend
họ thanh toán                       POST   /v1/reseller/services/{siteId}/unsuspend
họ hủy dịch vụ                      DELETE /v1/sites/{siteId}
"đăng nhập vào hosting"            POST   /v1/reseller/services/{siteId}/sso

Việc khởi tạo dịch vụ gồm hai lệnh gọi và các khóa định danh rất quan trọng:

# 1. tài khoản của khách hàng — gắn định danh theo ID khách hàng của BẠN
curl -X POST https://api.zinndigital.com/v1/orgs \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: account-4211" \
  -d '{"type":"customer","name":"Acme Ltd"}'

# 2. trang web của họ — gắn định danh theo ID dịch vụ của BẠN
curl -X POST https://api.zinndigital.com/v1/sites \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: service-9915" \
  -d '{"org_id":"<from step 1>","product_line":"mainstream","primary_domain":"acme.com"}'

Hai quy tắc sẽ làm tổn thất tiền bạc nếu bạn làm sai

  1. Gắn khóa tài khoản theo KHÁCH HÀNG và trang web theo DỊCH VỤ của bạn. Đơn hàng thứ hai của khách hàng phải nằm trong tài khoản mà họ đã có. Nếu gắn khóa cả hai theo dịch vụ, một khách hàng sẽ kết thúc với ba tài khoản không liên quan và ba bảng điều khiển riêng biệt.
  2. Gửi một Idempotency-Key trên mọi lệnh POST, được tạo từ ID đối tượng của riêng bạn. Mọi hệ thống thanh toán đều có cơ chế thử lại — một phản hồi cổng thanh toán gửi đến hai lần, người quản trị chạy lại việc khởi tạo bị lỗi, hoặc khách hàng nhấp đúp chuột. Nếu không có khóa này, lần thử thứ hai sẽ tạo ra trang web thứ hai và bạn sẽ bị tính phí cho nó.

Ba câu trả lời bạn không được gộp chung thành hai

  • unsuspend có thể trả về mã 409. Điều đó có nghĩa là bộ phận xử lý vi phạm của chúng tôi đang tạm khóa trang web, không phải bạn. Hãy hiển thị thông báo; đừng thử lại.
  • **Hủy dịch vụ chỉ là lên lịch xóa, chứ không thực hiện xóa ngay lập tức.** Ngày xóa sẽ được trả về dưới dạng pending_deletion_at. Việc báo với khách hàng rằng dữ liệu của họ đã mất trong khi thực tế chưa mất còn tệ hơn là không báo gì.
  • disk_used_bytes có thể trả về null, và null không phải là bằng không. Điều đó có nghĩa là chúng tôi không thể đo lường, chứ không phải là không có dung lượng nào được sử dụng. Hãy bỏ qua nó — đừng ghi giá trị 0 vào bản ghi của bạn, nếu không bạn sẽ hiển thị cho khách hàng một thanh dung lượng xanh lá cho một trang web mà bạn không có chỉ số đo lường.

4. Đăng nhập cho khách hàng

Lệnh POST /v1/reseller/services/{siteId}/sso trả về một URL dùng một lần để đưa khách hàng của bạn thẳng vào tài khoản của họ ở trạng thái đã đăng nhập.

Hãy tạo liên kết khi họ nhấp vào, không bao giờ tạo khi bạn dựng (render) trang. Liên kết này chỉ dùng một lần và hết hạn trong vài phút, do đó một liên kết được ghi trực tiếp vào trang sẽ bị vô hiệu hóa ngay lần xem trang đầu tiên và bị lưu lại trong mọi bộ nhớ đệm giữa bạn và trình duyệt.

5. Cài đặt module thay thế

  • WHMCS — sao chép module vào thư mục modules/servers/zinn/, thêm máy chủ với Password là API key của bạn, và thiết lập dòng sản phẩm trên sản phẩm. Nhấn Test Connection: hệ thống sẽ thực hiện một lệnh gọi thực tế và cho bạn biết phản hồi từ nền tảng.
  • HostBill — sao chép vào includes/modules/Hosting/zinn/ và kết nối theo cách tương tự.
  • WordPress — bộ công cụ Zinn® Reseller Toolkit: tìm kiếm tên miền, liên kết đăng nhập vào hosting của khách hàng và tự động khởi tạo qua WooCommerce khi đơn hàng được thanh toán. Mã nguồn mở tại <https://github.com/Zinn-Digital/zinn-reseller-toolkit>, hoặc tải xuống từ mục Plugins trong bảng điều khiển của bạn.

6. Sẵn sàng hoạt động

Hãy kiểm tra các mục này trước khi nhận đơn hàng thực tế:

  • Kiểm tra kết nối thành công trên module, hoặc lệnh curl đầu tiên của bạn trả về một danh sách.
  • Bảng giá của bạn đã được thiết lập (Bán lại → Giá của bạn).
  • Cổng thanh toán của bạn đã được kết nối (Bán lại → Cổng thanh toán) — khách hàng thanh toán cho bạn, thông qua tài khoản của chính bạn.
  • Thông tin công ty của bạn đã được nhập (Bán lại → Công ty của bạn) để hóa đơn của khách hàng hiển thị tư cách pháp nhân và mã số thuế VAT của bạn, chứ không phải của chúng tôi.
  • Bạn đã đặt thử một đơn hàng thực tế hoàn chỉnh từ đầu đến cuối và theo dõi trang web xuất hiện.

Nơi tìm mọi thông tin khác

Tài liệu tham khảo API đầy đủ — mọi điểm cuối (endpoint), được tạo từ thông số kỹ thuật của chúng tôi, kèm theo quyền hạn cần thiết cho từng điểm — có tại <https://zinndigital.com/developers/api>.

Vẫn chưa được?

Hỗ trợ được bao gồm trong mọi gói cước và giải đáp bằng chính ngôn ngữ của bạn.

Liên hệ bộ phận hỗ trợ Tất cả bài viết
Bán dịch vụ lưu trữ Zinn® từ hệ thống của riêng bạn