คุณขายต่อบริการโฮสติ้งของเรา ลูกค้าของคุณเป็นของคุณ: ราคาของคุณ ใบแจ้งหนี้ของคุณ ผู้ให้บริการรับชำระเงินของคุณ นี่คือวิธีที่คุณควบคุมแพลตฟอร์มของเราจากสิ่งที่คุณใช้งานอยู่แล้ว ไม่ว่าจะเป็นพาเนลระบบเรียกเก็บเงิน เว็บไซต์ WordPress ของคุณเอง หรือสคริปต์
สิ่งที่ลูกค้าของคุณมองเห็นจริง ๆ
ก่อนจะเข้าสู่เรื่องกลไกการทำงาน: ลูกค้าของคุณไม่จำเป็นต้องเห็นเราเลย มีสามส่วนประสานงาน และคุณสามารถเลือกได้ว่าจะใช้อันไหน
| ส่วนประสานงาน | เป็นของใคร |
|---|
| พาเนลโฮสติ้ง บนชื่อโฮสต์ของคุณเอง | กำหนดชื่อโฮสต์ของพาเนลได้ที่ การขายต่อ → แบรนด์ของคุณ และลูกค้าของคุณจะเข้าสู่ระบบที่ panel.yourcompany.com พร้อมโลโก้และสีประจำแบรนด์ของคุณ พาเนลเดียวกัน แต่เป็นที่อยู่ของคุณ |
| เว็บไซต์ของคุณเอง | ปลั๊กอิน WordPress จะใส่การค้นหาโดเมนและลิงก์เข้าสู่ระบบในคลิกเดียวไว้บนไซต์ของคุณ และรับคำสั่งซื้อผ่านระบบชำระเงินของ WooCommerce ของคุณเอง |
| พาเนลระบบเรียกเก็บเงินของคุณ | WHMCS หรือ HostBill ยังคงเป็นด่านหน้า ตัวโมดูลจะจัดเตรียมทรัพยากรอยู่เบื้องหลัง และปุ่มในพื้นที่ลูกค้าจะนำพวกเขาเข้าสู่โฮสติ้งโดยตรง |
⛔ ไม่ว่าคุณจะเลือกแบบใด คุณคือผู้ค้าที่มีชื่อในบันทึกสำหรับลูกค้าของคุณ: ราคาของคุณ ใบแจ้งหนี้ของคุณ หมายเลขประจำตัวผู้เสียภาษีของคุณ ผู้ให้บริการรับชำระเงินของคุณ เราจะเรียกเก็บเงินจากคุณเดือนละครั้งในราคาส่ง
เมื่อคุณตั้งค่าชื่อโฮสต์ของพาเนลแล้ว ให้นำไปใส่ในช่อง ที่อยู่พาเนล ของปลั๊กอิน WordPress และไม่ต้องใส่ที่อื่น — ลิงก์เข้าสู่ระบบที่ API นี้สร้างขึ้นจะนำไปใช้โดยอัตโนมัติ
สี่ช่องทางในการเข้าถึง
มีสี่ช่องทางในการเข้าถึง และเบื้องหลังล้วนทำงานเหมือนกันทั้งหมด:
| สำหรับ |
|---|
| โมดูล WHMCS | ร้านค้า WHMCS |
| โมดูล HostBill | ร้านค้า HostBill |
| ปลั๊กอิน WordPress | การขายจากไซต์ WordPress หรือ WooCommerce ของคุณเอง |
| API | อื่น ๆ ทั้งหมด — Blesta, ระบบภายในองค์กร, สคริปต์ cron |
1. รับคีย์ API
ในแดชบอร์ดของคุณ ให้ไปที่ คีย์ API แล้วสร้างขึ้นมาหนึ่งรายการ กำหนดสิทธิ์ให้เฉพาะเท่าที่จำเป็นเท่านั้น:
| สิทธิ์ | เหตุผล |
|---|
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. การผสานรวมทั้งหมด ในการเรียกใช้หกครั้ง
เมื่อ เรียกใช้
คำสั่งซื้อได้รับการชำระเงิน POST /v1/orgs หนึ่งครั้งต่อลูกค้า (CUSTOMER)
POST /v1/sites หนึ่งครั้งต่อบริการ (SERVICE)
พวกเขาไม่ชำระเงิน POST /v1/reseller/services/{siteId}/suspend
พวกเขาชำระเงิน POST /v1/reseller/services/{siteId}/unsuspend
พวกเขายกเลิก DELETE /v1/sites/{siteId}
"เข้าสู่ระบบโฮสติ้ง" POST /v1/reseller/services/{siteId}/sso
การจัดเตรียมทรัพยากรใช้การเรียกสองครั้ง และคีย์มีความสำคัญอย่างยิ่ง:
# 1. บัญชีของลูกค้า — ใช้รหัสลูกค้า (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. ไซต์ของพวกเขา — ใช้รหัสบริการ (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"}'
กฎสองข้อที่ทำให้คุณเสียเงินได้หากทำผิดพลาด
- กำหนดคีย์ของบัญชีตามลูกค้า (CUSTOMER) และกำหนดคีย์ของไซต์ตามบริการ (SERVICE) คำสั่งซื้อครั้งที่สองของลูกค้าจะต้องไปอยู่ที่บัญชีเดิมที่พวกเขามีอยู่แล้ว หากกำหนดคีย์ทั้งสองรายการตามบริการ ลูกค้ารายเดียวอาจลงเอยด้วยการมีบัญชีที่ไม่เกี่ยวข้องกันสามบัญชีและมีพาเนลแยกกันสามพาเนล
- ส่ง
Idempotency-Key ไปกับทุกคำขอ POST โดยสร้างขึ้นจากรหัสของคุณเองสำหรับรายการนั้น ระบบเรียกเก็บเงินทุกระบบจะมีการลองส่งใหม่เสมอ — ไม่ว่าจะเป็นการติดต่อกลับจากเกตเวย์ซ้ำสองครั้ง ผู้ดูแลระบบสั่งรันการจัดเตรียมที่ล้มเหลวใหม่อีกครั้ง หรือลูกค้าดับเบิลคลิก หากไม่มีคีย์ดังกล่าว ความพยายามครั้งที่สองจะสร้างไซต์ที่สองขึ้นมาและคุณจะถูกเรียกเก็บเงินสำหรับรายการนั้น
คำตอบสามประการที่คุณต้องไม่มองข้ามความแตกต่าง
unsuspend สามารถตอบกลับเป็น 409 ได้ นั่นหมายความว่าทีมตรวจสอบการละเมิดของเราเป็นผู้ระงับไซต์ไว้ ไม่ใช่คุณ ให้แสดงข้อความดังกล่าว และไม่ต้องลองส่งใหม่
- **การยุติการให้บริการคือการกำหนดเวลาการลบ ไม่ใช่การลบทันที** วันที่จะถูกส่งกลับมาเป็น
pending_deletion_at การบอกลูกค้าว่าข้อมูลของพวกเขาหายไปแล้วทั้งที่จริงยังไม่หาย ถือว่าแย่ยิ่งกว่าการไม่บอกอะไรเลย
disk_used_bytes สามารถมีค่าเป็น null ได้ และค่าว่างไม่ใช่ศูนย์ นั่นหมายความว่าเราไม่สามารถวัดปริมาณได้ ไม่ได้หมายความว่าไม่มีการใช้งาน ให้ข้ามไป — อย่าบันทึกค่า 0 ลงในบันทึกของคุณเอง มิฉะนั้นคุณจะแสดงแถบการใช้งานสีเขียวให้ลูกค้าเห็นสำหรับไซต์ที่คุณไม่มีข้อมูลการอ่านค่า
4. นำลูกค้าเข้าสู่ระบบ
POST /v1/reseller/services/{siteId}/sso จะส่งคืน URL ที่ใช้งานได้ครั้งเดียว ซึ่งจะนำลูกค้าของคุณเข้าสู่บัญชีของตนเองโดยตรงในสถานะที่เข้าสู่ระบบเรียบร้อยแล้ว
⛔ ให้สร้างลิงก์เมื่อพวกเขาคลิก อย่าสร้างในตอนที่คุณเรนเดอร์หน้าเว็บ ลิงก์ดังกล่าวใช้ได้เพียงครั้งเดียวและจะหมดอายุภายในไม่กี่นาที ดังนั้น ลิงก์ที่เขียนฝังลงในหน้าเว็บจะถูกใช้จนหมดสภาพตั้งแต่การดูหน้าเว็บครั้งแรก และค้างอยู่ในแคชทุกจุดระหว่างคุณกับเบราว์เซอร์
5. ติดตั้งโมดูลแทน
- WHMCS — คัดลอกโมดูลไปที่
modules/servers/zinn/ เพิ่มเซิร์ฟเวอร์ที่มี รหัสผ่าน เป็นคีย์ API ของคุณ และกำหนดสายผลิตภัณฑ์ที่ตัวผลิตภัณฑ์ กดปุ่ม ทดสอบการเชื่อมต่อ: ระบบจะทำการเรียกใช้จริงและแจ้งให้คุณทราบว่าแพลตฟอร์มตอบกลับมาว่าอย่างไร
- HostBill — คัดลอกไปที่
includes/modules/Hosting/zinn/ และเชื่อมต่อในลักษณะเดียวกัน
- WordPress — Zinn® Reseller Toolkit: การค้นหาโดเมน ลิงก์เข้าสู่ระบบโฮสติ้งของลูกค้า และการจัดเตรียมทรัพยากรของ WooCommerce เมื่อคำสั่งซื้อได้รับการชำระเงิน เป็นโอเพนซอร์สที่ <https://github.com/Zinn-Digital/zinn-reseller-toolkit> หรือดาวน์โหลดได้จากส่วน ปลั๊กอิน ในแดชบอร์ดของคุณ
6. เริ่มใช้งานจริง
ตรวจสอบรายการเหล่านี้ก่อนที่คุณจะรับคำสั่งซื้อจริง:
- การทดสอบการเชื่อมต่อผ่านโมดูลสำเร็จ หรือการใช้
curl ครั้งแรกของคุณส่งคืนรายการกลับมา
- มีการกำหนดรายการราคาของคุณแล้ว (การขายต่อ → ราคาของคุณ)
- เชื่อมต่อเกตเวย์การชำระเงินของคุณแล้ว (การขายต่อ → เกตเวย์การชำระเงิน) — ลูกค้าของคุณชำระเงินให้คุณ ผ่านบัญชีของคุณเอง
- ใส่รายละเอียดบริษัทของคุณเรียบร้อยแล้ว (การขายต่อ → บริษัทของคุณ) เพื่อให้ใบแจ้งหนี้ของลูกค้าแสดงนิติบุคคลและหมายเลขประจำตัวผู้เสียภาษีของคุณ ไม่ใช่ของเรา
- คุณได้ทดลองสั่งซื้อจริงแบบครบวงจรไปหนึ่งรายการ และเห็นไซต์ปรากฏขึ้นมาแล้ว
แหล่งข้อมูลอื่น ๆ ทั้งหมด
ข้อมูลอ้างอิง API ฉบับสมบูรณ์ — ทุกปลายทาง ซึ่งสร้างขึ้นจากข้อกำหนดของเรา พร้อมสิทธิ์ที่แต่ละส่วนต้องใช้ — สามารถดูได้ที่ <https://zinndigital.com/developers/api>