អ្នកលក់បន្តសេវាបង្ហោះគេហទំព័រ (hosting) របស់យើង។ អតិថិជនរបស់អ្នកគឺជាកម្មសិទ្ធិរបស់អ្នក៖ តម្លៃរបស់អ្នក វិក្កយបត្ររបស់អ្នក អ្នកផ្តល់សេវាទូទាត់ប្រាក់របស់អ្នក។ នេះជារបៀបដែលអ្នកដំណើរការវេទិការបស់យើងពីអ្វីៗដែលអ្នកកំពុងប្រើប្រាស់រួចហើយ — ផ្ទាំងគ្រប់គ្រងការទូទាត់ប្រាក់ គេហទំព័រ WordPress ផ្ទាល់ខ្លួនរបស់អ្នក ឬស្គ្រីបមួយ។
អ្វីដែលអតិថិជនរបស់អ្នកពិតជាបានឃើញ
មុននឹងឈានដល់ផ្នែកបច្ចេកទេស៖ អតិថិជនរបស់អ្នកមិនចាំបាច់ឃើញយើងទាល់តែសោះ។ ផ្ទៃចំណុចប្រទាក់បី ហើយអ្នកជ្រើសរើសមួយណាដែលអ្នកចង់ប្រើ។
| ផ្ទៃចំណុចប្រទាក់ | ជាកម្មសិទ្ធិរបស់អ្នកណា |
|---|
| ផ្ទាំង hosting នៅលើឈ្មោះម៉ាស៊ីន (hostname) ផ្ទាល់ខ្លួនរបស់អ្នក | កំណត់ hostname ផ្ទាំងគ្រប់គ្រងនៅក្រោម Reselling → ម៉ាករបស់អ្នក ហើយអតិថិជនរបស់អ្នកនឹងចូលប្រើប្រាស់នៅ panel.yourcompany.com ជាមួយនឹងរូបសញ្ញា និងពណ៌ផ្ទាល់ខ្លួនរបស់អ្នក។ ផ្ទាំងគ្រប់គ្រងដូចគ្នា ប៉ុន្តែអាសយដ្ឋានរបស់អ្នក។ |
| គេហទំព័រផ្ទាល់ខ្លួនរបស់អ្នក | កម្មវិធីជំនួយ (plugin) WordPress ដាក់ការស្វែងរកឈ្មោះដែន (domain) និងតំណចូលប្រើប្រាស់ដោយចុចតែម្តងនៅលើគេហទំព័ររបស់អ្នក ហើយទទួលការបញ្ជាទិញតាមរយៈការទូទាត់ប្រាក់ WooCommerce ផ្ទាល់ខ្លួនរបស់អ្នក។ |
| ផ្ទាំងគ្រប់គ្រងការទូទាត់ប្រាក់របស់អ្នក | WHMCS ឬ HostBill នៅតែជាទំព័រមុខដដែល។ ម៉ូឌុលដំណើរការរៀបចំនៅពីក្រោយ ហើយប៊ូតុងតំបន់អតិថិជន (client-area) នឹងនាំពួកគេចូលទៅកាន់ hosting របស់ពួកគេដោយផ្ទាល់។ |
⛔ មិនថាអ្នកជ្រើសរើសមួយណាទេ អ្នកគឺជាអាជីវករស្របច្បាប់ (merchant of record) សម្រាប់អតិថិជនរបស់អ្នក៖ តម្លៃរបស់អ្នក វិក្កយបត្ររបស់អ្នក លេខអាករលើតម្លៃបន្ថែម (VAT) របស់អ្នក អ្នកផ្តល់សេវាទូទាត់ប្រាក់របស់អ្នក។ យើងចេញវិក្កយបត្រជូនអ្នក ម្តងក្នុងមួយខែ ក្នុងតម្លៃបោះដុំ។
នៅពេលអ្នកបានកំណត់ hostname ផ្ទាំងគ្រប់គ្រងរួចហើយ សូមដាក់វាទៅក្នុងប្រអប់ Panel address នៃកម្មវិធីជំនួយ WordPress ហើយកុំដាក់ក្នុងប្រអប់ផ្សេងទៀតឡើយ — តំណចូលប្រើប្រាស់ដែល API នេះបង្កើតឡើងនឹងអនុវត្តតាមវាដោយស្វ័យប្រវត្តិ។
វិធីទាំងបួនក្នុងការចូលដំណើរការ
មានវិធីបួនយ៉ាងក្នុងការចូលដំណើរការ ហើយវិធីទាំងអស់នេះដំណើរការដូចគ្នានៅខាងក្រោម៖
| សម្រាប់ |
|---|
| ម៉ូឌុល WHMCS | ហាង WHMCS |
| ម៉ូឌុល HostBill | ហាង HostBill |
| កម្មវិធីជំនួយ WordPress | ការលក់ពីគេហទំព័រ WordPress ឬ WooCommerce ផ្ទាល់ខ្លួនរបស់អ្នក |
| API | អ្វីៗផ្សេងទៀត — Blesta ប្រព័ន្ធផ្ទៃក្នុង ស្គ្រីប cron |
១. យកសោ API
នៅក្នុងផ្ទាំងគ្រប់គ្រងរបស់អ្នក សូមចូលទៅកាន់ API keys ហើយបង្កើតមួយ។ ផ្តល់ការអនុញ្ញាតត្រឹមតែអ្វីដែលវាត្រូវការប៉ុណ្ណោះ៖
| ការអនុញ្ញាត | ហេតុផល |
|---|
org.read | អានគណនីអតិថិជនរបស់អ្នក |
sites.create | រៀបចំដំណើរការគេហទំព័រ |
sites.view | អានសេវាកម្ម |
sites.delete | បញ្ចប់សេវា |
reseller.view | រាយបញ្ជីសេវាកម្មរបស់អ្នក និងអានការប្រើប្រាស់ |
reseller.provision | ផ្អាក ដំណើរការឡើងវិញ និងចុះឈ្មោះអតិថិជនចូល |
⛔ កុំផ្តល់ reseller.manage ដល់ការតភ្ជាប់ប្រព័ន្ធ (integration) ឱ្យសោះ។ ការអនុញ្ញាតនោះអាចកែសម្រួលបញ្ជីតម្លៃរបស់អ្នក និងព័ត៌មានសម្ងាត់ច្រកទូទាត់ប្រាក់ផ្ទាល់ខ្លួនរបស់អ្នក។ reseller.provision មានវត្តមានឡើងគឺដើម្បីកុំឱ្យសោដែលអ្នកបិទភ្ជាប់ទៅក្នុងផ្ទាំងទូទាត់ប្រាក់ ឬគេហទំព័រត្រូវការការអនុញ្ញាតនោះ។
សោនេះត្រូវបានបង្ហាញតែម្តងគត់។ សូមរក្សាទុកវានៅកន្លែងដែលអ្នករក្សាទុកព័ត៌មានសម្ងាត់ផ្សេងទៀតរបស់អ្នក — កុំរក្សាទុកក្នុងឯកសារដែលម៉ាស៊ីនមេគេហទំព័ររបស់អ្នកបម្រើឱ្យសោះ។
២. ធ្វើការហៅទូរស័ព្ទដំបូងរបស់អ្នក
curl https://api.zinndigital.com/v1/reseller/services \
-H "Authorization: Bearer zdk_live_…"
វាត្រឡប់មកវិញនូវរាល់សេវាកម្មដែលអ្នកបានរៀបចំដំណើរការ មួយជួរក្នុងមួយគេហទំព័រ ជាមួយនឹងអតិថិជនដែលជាម្ចាស់របស់វា ស្ថានភាពរបស់វា និងតម្លៃដែលអ្នកគិតថ្លៃលើវា។ នៅលើគណនីថ្មី វាគឺជាបញ្ជីទទេ — ដែលជាចម្លើយត្រឹមត្រូវ មិនមែនជាកំហុសទេ។
៣. ការតភ្ជាប់ប្រព័ន្ធទាំងមូល ក្នុងការហៅចំនួនប្រាំមួយ
WHEN CALL
an order is paid POST /v1/orgs once per CUSTOMER
POST /v1/sites once per SERVICE
they have not paid POST /v1/reseller/services/{siteId}/suspend
they pay POST /v1/reseller/services/{siteId}/unsuspend
they cancel DELETE /v1/sites/{siteId}
"log in to hosting" POST /v1/reseller/services/{siteId}/sso
ការរៀបចំដំណើរការគឺត្រូវហៅចំនួនពីរដង ហើយសោគឺសំខាន់ណាស់៖
# 1. the customer's account — keyed on 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. their site — keyed on 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"}'
ច្បាប់ពីរដែលធ្វើឱ្យខាតបង់ប្រាក់នៅពេលអ្នកអនុវត្តខុស
១. ភ្ជាប់សោគណនីលើ អតិថិជន របស់អ្នក និងភ្ជាប់សោគេហទំព័រលើ សេវាកម្ម របស់អ្នក។ ការបញ្ជាទិញលើកទីពីររបស់អតិថិជនត្រូវតែចូលទៅក្នុងគណនីដែលពួកគេមានរួចហើយ។ ប្រសិនបើភ្ជាប់សោទាំងពីរលើសេវាកម្ម នោះអតិថិជនម្នាក់នឹងទទួលបានគណនីមិនទាក់ទងគ្នាបី និងផ្ទាំងគ្រប់គ្រងដាច់ដោយឡែកបី។ ២. ផ្ញើ Idempotency-Key រាល់ពេលធ្វើ POST ដែលបង្កើតចេញពីលេខសម្គាល់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ធាតុនោះ។ រាល់ប្រព័ន្ធទូទាត់ប្រាក់តែងតែព្យាយាមម្តងទៀត — ការឆ្លើយតបត្រឡប់មកវិញនៃច្រកទូទាត់មកដល់ពីរដង អ្នកគ្រប់គ្រងដំណើរការការរៀបចំដែលបរាជ័យឡើងវិញ អតិថិជនចុចពីរដង។ បើគ្មានសោទេ ការប៉ុនប៉ងលើកទីពីរនឹងបង្កើតគេហទំព័រទីពីរ ហើយអ្នកនឹងត្រូវបង់ប្រាក់សម្រាប់វា។
ចម្លើយបីដែលអ្នកមិនត្រូវបង្រួមឱ្យនៅត្រឹមពីរឡើយ
unsuspend អាចឆ្លើយតប 409។ នោះមានន័យថាក្រុមការងារផ្នែករំលោភបំពានរបស់យើងកំពុងផ្អាកគេហទំព័រនេះ មិនមែនអ្នកទេ។ បង្ហាញសារនេះ កុំព្យាយាមម្តងទៀតឡើយ។
- **ការបញ្ចប់សេវាគឺគ្រាន់តែ កំណត់កាលវិភាគ លុបប៉ុណ្ណោះ វាមិនទាន់អនុវត្តការលុបភ្លាមៗនោះទេ។** កាលបរិច្ឆេទត្រឡប់មកវិញជា
pending_deletion_at។ ការប្រាប់អតិថិជនថាទិន្នន័យរបស់ពួកគេត្រូវបានលុបរួចហើយ ខណៈពេលដែលវាមិនទាន់លុប គឺអាក្រក់ជាងការមិនប្រាប់អ្វីសោះដល់ពួកគេ។
disk_used_bytes អាចជា null ហើយ null មិនមែនសូន្យទេ។ វាមានន័យថាយើងមិនអាចវាស់វែងបាន មិនមែនគ្មានអ្វីត្រូវបានប្រើប្រាស់នោះទេ។ សូមរំលងវា — កុំសរសេរ 0 ទៅក្នុងកំណត់ត្រាផ្ទាល់ខ្លួនរបស់អ្នក បើពុំនោះទេអ្នកនឹងបង្ហាញរបារប្រើប្រាស់ពណ៌បៃតងដល់អតិថិជនសម្រាប់គេហទំព័រដែលអ្នកគ្មានទិន្នន័យអានឡើយ។
៤. ចូលប្រើប្រាស់សម្រាប់អតិថិជន
POST /v1/reseller/services/{siteId}/sso ត្រឡប់មកវិញនូវ URL ប្រើប្រាស់តែម្តង ដែលនាំអតិថិជនរបស់អ្នកចូលទៅក្នុងគណនីផ្ទាល់ខ្លួនរបស់ពួកគេដោយផ្ទាល់ ដោយបានចូលរួចជាស្រេច។
⛔ បង្កើតវានៅពេលពួកគេចុច កុំបង្កើតវានៅពេលអ្នកបង្ហាញ (render) ទំព័រឱ្យសោះ។ តំណនេះគឺសម្រាប់ប្រើប្រាស់តែម្តង និងផុតកំណត់ក្នុងរយៈពេលប៉ុន្មាននាទី ដូច្នេះតំណដែលបានសរសេរទៅក្នុងទំព័រនឹងត្រូវអស់សុពលភាពនៅពេលចូលមើលទំព័រលើកដំបូង ហើយនៅសល់ក្នុងគ្រប់ឃ្លាំងសម្ងាត់ (cache) រវាងអ្នក និងកម្មវិធីរុករក។
៥. ដំឡើងម៉ូឌុលជំនួសវិញ
- WHMCS — ចម្លងម៉ូឌុលទៅកាន់
modules/servers/zinn/ បន្ថែមម៉ាស៊ីនមេដែល Password គឺជាសោ API របស់អ្នក ហើយកំណត់ជួរផលិតផលនៅលើផលិតផល។ ចុច Test Connection៖ វានឹងធ្វើការហៅជាក់ស្តែង និងប្រាប់អ្នកពីអ្វីដែលវេទិកាបានឆ្លើយតប។
- HostBill — ចម្លងទៅកាន់
includes/modules/Hosting/zinn/ ហើយភ្ជាប់វាតាមវិធីដូចគ្នា។
- WordPress — Zinn® Reseller Toolkit៖ ការស្វែងរកឈ្មោះដែន តំណចូលទៅកាន់ hosting របស់អតិថិជនរបស់អ្នក និងការរៀបចំដំណើរការ WooCommerce នៅពេលការបញ្ជាទិញត្រូវបានទូទាត់ប្រាក់។ ប្រភពបើកចំហ (open source) នៅ <https://github.com/Zinn-Digital/zinn-reseller-toolkit> ឬទាញយកវាពី Plugins នៅក្នុងផ្ទាំងគ្រប់គ្រងរបស់អ្នក។
៦. ចាប់ផ្តើមដំណើរការផ្ទាល់
សូមពិនិត្យមើលចំណុចទាំងនេះ មុនពេលអ្នកទទួលការបញ្ជាទិញជាក់ស្តែង៖
- ការធ្វើតេស្តការតភ្ជាប់ទទួលបានជោគជ័យលើម៉ូឌុល ឬ
curl ដំបូងរបស់អ្នកត្រឡប់មកវិញនូវបញ្ជីមួយ។
- បញ្ជីតម្លៃរបស់អ្នកត្រូវបានកំណត់រួចរាល់ (Reselling → តម្លៃរបស់អ្នក)។
- ច្រកទូទាត់ប្រាក់របស់អ្នកត្រូវបានភ្ជាប់រួចរាល់ (Reselling → ច្រកទូទាត់ប្រាក់) — អតិថិជនរបស់អ្នកបង់ប្រាក់ឱ្យអ្នក តាមរយៈគណនីផ្ទាល់ខ្លួនរបស់អ្នក។
- ព័ត៌មានលម្អិតអំពីក្រុមហ៊ុនរបស់អ្នកត្រូវបានបញ្ចូលរួចរាល់ (Reselling → ក្រុមហ៊ុនរបស់អ្នក) ដូច្នេះវិក្កយបត្រអតិថិជនរបស់អ្នកមានអង្គភាពស្របច្បាប់ និងលេខ VAT របស់អ្នក មិនមែនជារបស់យើងទេ។
- អ្នកបានធ្វើការបញ្ជាទិញជាក់ស្តែងមួយពីដើមដល់ចប់ និងបានឃើញគេហទំព័របង្ហាញឡើង។
កន្លែងដែលមានអ្វីៗផ្សេងទៀតទាំងអស់
ឯកសារយោង API ពេញលេញ — រាល់ endpoint ដែលបានបង្កើតឡើងពីការបញ្ជាក់លម្អិតបច្ចេកទេសរបស់យើង ជាមួយនឹងការអនុញ្ញាតដែលនីមួយៗត្រូវការ — មាននៅ <https://zinndigital.com/developers/api>។