ฐานความรู้

การขายโฮสติ้ง Zinn® จากระบบของคุณเอง

จัดการโฮสติ้ง Zinn จากแผงเรียกเก็บเงิน เว็บไซต์ WordPress หรือสคริปต์ของคุณเอง: รับ API key ทำการเรียกครั้งแรกของคุณ และอีกหกครั้งที่ใช้ในการรวมระบบทั้งหมด

คุณเป็นผู้จำหน่ายโฮสติ้งของเรา ลูกค้าของคุณคือของคุณเอง: กำหนดราคาเอง ออกใบแจ้งหนี้เอง และใช้บริการรับชำระเงินของคุณเอง นี่คือวิธีที่คุณใช้งานแพลตฟอร์มของเราจากระบบที่คุณใช้อยู่แล้ว ไม่ว่าจะเป็นระบบออกใบแจ้งหนี้ เว็บไซต์ WordPress ของคุณเอง หรือสคริปต์

สิ่งที่ลูกค้าของคุณเห็นจริงๆ

ก่อนจะพูดถึงเรื่องกลไก: ลูกค้าของคุณไม่จำเป็นต้องเห็นเราเลย เรามี 3 รูปแบบ และคุณสามารถเลือกใช้ได้ตามต้องการ

| รูปแบบ | ของใคร | |---|---| | แผงควบคุมโฮสติ้ง บนโดเมนของคุณเอง | กำหนดชื่อโฮสต์ของแผงควบคุมได้ที่ การขายต่อ → แบรนด์ของคุณ แล้วลูกค้าของคุณจะเข้าสู่ระบบที่ panel.yourcompany.com พร้อมโลโก้และสีของคุณ แผงควบคุมเดียวกัน แต่เป็นที่อยู่ของคุณ | | เว็บไซต์ของคุณเอง | ปลั๊กอิน WordPress จะเพิ่มระบบค้นหาโดเมนและลิงก์เข้าสู่ระบบได้ด้วยคลิกเดียวบนเว็บไซต์ของคุณ และดำเนินการสั่งซื้อผ่านระบบชำระเงิน WooCommerce ของคุณ | | แผงควบคุมการเรียกเก็บเงินของคุณ | ใช้ WHMCS หรือ HostBill เป็นหน้าบ้านเหมือนเดิม ระบบโมดูลจะจัดการสร้างบริการเบื้องหลัง และปุ่มในหน้าลูกค้าจะพาพวกเขาเข้าสู่โฮสติ้งโดยตรง |

⛔ ไม่ว่าคุณจะเลือกแบบใด คุณคือผู้ขายอย่างเป็นทางการสำหรับลูกค้าของคุณ: กำหนดราคาเอง ออกใบแจ้งหนี้เอง ระบุเลขประจำตัวผู้เสียภาษีของคุณเอง และใช้บริการรับชำระเงินของคุณเอง เราจะเรียกเก็บเงินจาก คุณ เดือนละครั้งในราคาขายส่ง

เมื่อคุณตั้งค่าชื่อโฮสต์ของแผงควบคุมแล้ว ให้ใส่ลงในช่อง ที่อยู่แผงควบคุม ของปลั๊กอิน WordPress เท่านั้น และไม่ต้องใส่ที่อื่น — ลิงก์เข้าสู่ระบบที่ API นี้สร้างขึ้นจะอ้างอิงตามนั้นโดยอัตโนมัติ

4 ช่องทางในการเชื่อมต่อ

มี 4 ช่องทางในการเชื่อมต่อ ซึ่งเบื้องหลังทั้งหมดจะทำงานเหมือนกัน:

| | สำหรับ | |---|---| | โมดูล WHMCS | ร้านค้าที่ใช้ WHMCS | | โมดูล HostBill | ร้านค้าที่ใช้ HostBill | | ปลั๊กอิน WordPress | การขายผ่านเว็บไซต์ WordPress หรือ WooCommerce ของคุณ | | API | อื่นๆ — Blesta, ระบบภายในองค์กร, หรือสคริปต์ cron |

1. รับคีย์ API (API key)

ในหน้าแดชบอร์ดของคุณ ไปที่ คีย์ API (API keys) แล้วสร้างขึ้นมา กำหนดสิทธิ์ให้เท่าที่จำเป็นเท่านั้น:

| สิทธิ์ | ทำไมต้องใช้ | |---|---| | org.read | อ่านข้อมูลบัญชีลูกค้าของคุณ | | sites.create | สร้างเว็บไซต์ | | sites.view | อ่านข้อมูลบริการ | | sites.delete | ยกเลิกบริการ | | reseller.view | แสดงรายการบริการและอ่านข้อมูลการใช้งานของคุณ | | reseller.provision | ระงับ ปล่อย และเข้าสู่ระบบในนามลูกค้า |

อย่าให้สิทธิ์ reseller.manage แก่ระบบบูรณาการใดๆ สิทธิ์นั้นใช้สำหรับแก้ไขรายการราคาและข้อมูลรับรองเกตเวย์การชำระเงินของคุณเอง สิทธิ์ reseller.provision ถูกสร้างขึ้นมาเพื่อให้คีย์ที่คุณนำไปวางในแผงควบคุมหรือเว็บไซต์ไม่ต้องใช้สิทธิ์ดังกล่าว

คีย์นี้จะแสดงให้เห็นเพียงครั้งเดียว เก็บรักษาไว้ในที่เดียวกับที่คุณเก็บข้อมูลรับรองอื่นๆ — ห้ามเก็บไว้ในไฟล์ที่เซิร์ฟเวอร์เว็บของคุณเข้าถึงได้สาธารณะ

2. ทำการเรียกใช้งานครั้งแรก

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

คำสั่งนี้จะส่งคืนบริการทั้งหมดที่คุณได้สร้างไว้ (แถวละหนึ่งเว็บไซต์) พร้อมกับข้อมูลลูกค้าที่เป็นเจ้าของ สถานะ และราคาที่คุณเรียกเก็บ สำหรับบัญชีใหม่ รายการนี้จะว่างเปล่า ซึ่งถือเป็นผลลัพธ์ที่ถูกต้อง ไม่ใช่ข้อผิดพลาด

3. การบูรณาการทั้งหมดใน 6 คำสั่ง

เมื่อเกิดเหตุการณ์                 คำสั่ง
ชำระเงินค่าคำสั่งซื้อแล้ว           POST   /v1/orgs                                   หนึ่งครั้งต่อ ลูกค้าหนึ่งราย
                                    POST   /v1/sites                                  หนึ่งครั้งต่อ บริการหนึ่งรายการ
ยังไม่ได้ชำระเงิน                   POST   /v1/reseller/services/{siteId}/suspend
ชำระเงินแล้ว                        POST   /v1/reseller/services/{siteId}/unsuspend
ยกเลิกบริการ                        DELETE /v1/sites/{siteId}
"เข้าสู่ระบบโฮสติ้ง"                POST   /v1/reseller/services/{siteId}/sso

การจัดสรรบริการต้องใช้ 2 คำสั่ง และคีย์มีความสำคัญมาก:

# 1. บัญชีของลูกค้า — อ้างอิงตามรหัสลูกค้าของคุณ (YOUR customer id)
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. เว็บไซต์ของลูกค้า — อ้างอิงตามรหัสบริการของคุณ (YOUR service id)
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"}'

สองกฎที่จะทำให้คุณเสียเงินถ้าทำผิด

  1. อ้างอิงบัญชีด้วยรหัสลูกค้า (CUSTOMER) และเว็บไซต์ด้วยรหัสบริการ (SERVICE) ของคุณ คำสั่งซื้อครั้งที่สองของลูกค้าจะต้องอยู่ในบัญชีเดิมที่เขามีอยู่แล้ว หากอ้างอิงทั้งคู่ด้วยรหัสบริการ ลูกค้าหนึ่งรายจะลงเอยด้วยการมีบัญชีที่ไม่เกี่ยวข้องกัน 3 บัญชี และมีแผงควบคุมแยกกัน 3 ชุด
  2. ส่ง Idempotency-Key ในทุกคำสั่ง POST โดยสร้างมาจากรหัสประจำรายการนั้นๆ ของคุณเอง ระบบเรียกเก็บเงินทุกระบบจะมีการลองส่งซ้ำ — คอลแบ็กจากเกตเวย์ส่งมาสองครั้ง แอดมินรันคำสั่งสร้างบริการที่ล้มเหลวซ้ำ ลูกค้าคลิกปุ่มสองครั้ง หากไม่มีคีย์นี้ ความพยายามครั้งที่สองจะสร้างเว็บไซต์ขึ้นมาอีกเว็บและคุณจะต้องเสียค่าใช้จ่ายสำหรับเว็บไซต์นั้น

สามคำตอบที่คุณต้องไม่ยุบรวมเป็นสอง

  • unsuspend อาจตอบกลับมาเป็น 409 นั่นหมายความว่าทีมตรวจสอบการละเมิดของเราเป็นผู้ระงับเว็บไซต์ไว้ ไม่ใช่คุณ ให้แสดงข้อความนั้นออกมา ห้ามลองส่งซ้ำ
  • **การยกเลิกบริการเป็นการ ตั้งเวลา ลบ ไม่ใช่การลบในทันที** วันที่ลบจะส่งกลับมาในรูปแบบ pending_deletion_at การบอกลูกค้าว่าข้อมูลของพวกเขาหายไปแล้วทั้งที่ความจริงยังอยู่แย่ยิ่งกว่าการไม่บอกอะไรเลย
  • disk_used_bytes อาจมีค่าเป็น null และค่า null ไม่เท่ากับศูนย์ นั่นหมายความว่าเราไม่สามารถวัดผลได้ ไม่ได้แปลว่าไม่มีการใช้งาน ให้ข้ามไป — อย่าบันทึกค่า 0 ลงในบันทึกของคุณ ไม่อย่างนั้นคุณจะแสดงแถบแสดงการใช้งานสีเขียวให้ลูกค้าเห็นในเว็บไซต์ที่คุณอ่านค่าไม่ได้

4. เข้าสู่ระบบในนามลูกค้า

POST /v1/reseller/services/{siteId}/sso จะส่งคืน URL ที่ใช้ได้ครั้งเดียว ซึ่งจะพา cliente ของคุณเข้าไปยังบัญชีของพวกเขาโดยตรงและเข้าสู่ระบบให้อัตโนมัติ

สร้างลิงก์เมื่อมีการคลิกเท่านั้น ห้ามสร้างเมื่อเรนเดอร์หน้าเว็บ ลิงก์นี้ใช้งานได้ครั้งเดียวและจะหมดอายุภายในไม่กี่นาที ดังนั้นลิงก์ที่ถูกฝังไว้ในหน้าเว็บจะถูกใช้ไปตั้งแต่การเปิดดูหน้าเว็บครั้งแรก และจะค้างอยู่ในแคชทุกตัวระหว่างคุณกับเบราว์เซอร์

5. ติดตั้งโมดูลแทน

  • WHMCS — คัดลอกโมดูลไปที่ modules/servers/zinn/ เพิ่มเซิร์ฟเวอร์โดยใช้คีย์ API ของคุณเป็น รหัสผ่าน (Password) และกำหนดสายผลิตภัณฑ์ (product line) ในตัวสินค้า กดปุ่ม ทดสอบการเชื่อมต่อ (Test Connection): ระบบจะทำการเรียกใช้งานจริงและแสดงผลลัพธ์จากแพลตฟอร์ม
  • HostBill — คัดลอกไปยัง includes/modules/Hosting/zinn/ และเชื่อมต่อด้วยวิธีเดียวกัน
  • WordPressชุดเครื่องมือตัวแทนจำหน่าย Zinn® Reseller Toolkit: ค้นหาโดเมน, ลิงก์เข้าสู่ระบบโฮสติ้งของลูกค้า, และระบบสร้างบริการของ WooCommerce เมื่อชำระเงินแล้ว ดูโอเพนซอร์สได้ที่ <https://github.com/Zinn-Digital/zinn-reseller-toolkit> หรือดาวน์โหลดจากหัวข้อ ปลั๊กอิน (Plugins) ในแดชบอร์ดของคุณ

6. เริ่มใช้งานจริง

ตรวจสอบสิ่งเหล่านี้ก่อนที่คุณจะรับคำสั่งซื้อจริง:

  • การทดสอบการเชื่อมต่อผ่านโมดูลสำเร็จ หรือคำสั่ง curl ครั้งแรกของคุณส่งคืนรายการบริการ
  • ตั้งค่ารายการราคาของคุณเรียบร้อยแล้ว (การขายต่อ → ราคาของคุณ)
  • เชื่อมต่อเกตเวย์การชำระเงินแล้ว (การขายต่อ → เกตเวย์การชำระเงิน) — ลูกค้าชำระเงินให้คุณ ผ่านบัญชีของคุณเอง
  • กรอกรายละเอียดบริษัทของคุณแล้ว (การขายต่อ → บริษัทของคุณ) เพื่อให้ใบแจ้งหนี้ของลูกค้าแสดงชื่อนิติบุคคลและเลขประจำตัวผู้เสียภาษีของคุณ ไม่ใช่ของเรา
  • คุณได้ทดลองสั่งซื้อจริงตั้งแต่ต้นจนจบหนึ่งรายการและเห็นเว็บไซต์ปรากฏขึ้นมาแล้ว

ข้อมูลอื่นๆ ทั้งหมด

คู่มืออ้างอิง API ฉบับสมบูรณ์ — ทุกเอนด์พอยต์ที่สร้างขึ้นจากสเปกของเรา พร้อมระบุสิทธิ์ที่แต่ละเอนด์พอยต์ต้องการ อยู่ที่ <https://zinndigital.com/developers/api>

ยังมีปัญหาอยู่ใช่ไหม?

รวมบริการช่วยเหลือในทุกแพลตฟอร์ม และตอบกลับด้วยภาษาของคุณเอง

ติดต่อฝ่ายสนับสนุน บทความทั้งหมด
การขายโฮสติ้ง Zinn® จากระบบของคุณเอง