មូលដ្ឋាន​ចំណេះដឹង

លក់សេវាកម្មបង្ហោះ Zinn® ពី HostBill, Blesta ឬប្រព័ន្ធផ្ទាល់ខ្លួនរបស់អ្នក

លក់សេវាបង្ហោះ Zinn® ពី HostBill, Blesta ឬប្រព័ន្ធផ្ទាល់ខ្លួនរបស់អ្នក៖ ម៉ូឌុល HostBill ឥតគិតថ្លៃ, កម្មវិធី PHP ឯកសារតែមួយ, ច្បាប់ពីរដែលធ្វើឱ្យខាតបង់ប្រាក់នៅពេលបំពាន, និងប្រអប់ទិន្នន័យស្នើសុំពីរដែលងាយនឹងមើលរំលង។

ប្រសិនបើអ្នកដំណើរការ WHMCS សូមប្រើ ម៉ូឌុល WHMCS ជំនួសវិញ — ទំព័រនេះគឺសម្រាប់អ្វីៗផ្សេងទៀតទាំងអស់។ មានជម្រើសពីរ ដែលទាំងពីរគឺឥតគិតថ្លៃ និងទាំងពីរស្ថិតក្រោមអាជ្ញាបណ្ណ GPL-2.0-or-later។

HostBill

ម៉ូឌុលបង្ហោះដែលមានសកម្មភាពចំនួនប្រាំមួយដូចគ្នានឹងម៉ូឌុល WHMCS ដែរ។

  1. ទាញយកវា ហើយពន្លាវា។
  2. ផ្ទុកឡើងថត zinn ទៅក្នុង includes/modules/Hosting/ ដើម្បីឱ្យឯកសារទាំងនោះស្ថិតនៅត្រង់
  3. includes/modules/Hosting/zinn/class.zinn.php និង includes/modules/Hosting/zinn/ZinnHostBillClient.php។

  4. Settings → Modules → Hosting សូមធ្វើឱ្យសកម្ម Zinn Digital® ហើយបន្ថែមការតភ្ជាប់មួយ៖
  • API address៖ https://api.zinndigital.com
  • API key៖ កូនសោ API Zinn® របស់អ្នក (ប្រអប់បញ្ចូល password ដូច្នេះ HostBill រក្សាទុកវាដោយការអ៊ិនគ្រីប)
  1. នៅលើផលិតផល សូមកំណត់ Product line (ឧទាហរណ៍ mainstream), Stack (ជាលំនាំដើម wordpress) ហើយតាមជម្រើស Application និង PHP version។
  2. ចុច Test connection។

⛔ កុំប្តូរឈ្មោះថត zinn។ កម្មវិធីផ្ទុករបស់ HostBill ទាញយក class ដែលវាស្វែងរកពីឈ្មោះថត ដូច្នេះការប្តូរឈ្មោះនឹងបង្កើតម៉ូឌុលមួយដែលផ្ទាំងបញ្ជីបង្ហាញ ប៉ុន្តែមិនដែលហៅប្រើឡើយ។

អ្វីៗផ្សេងទៀត — កម្មវិធី PHP client

ឯកសារមួយ គ្មានភាពអាស្រ័យ គ្មានការសន្មតផ្ទាំងគ្រប់គ្រង។ គ្រាន់តែទម្លាក់ ZinnProvisioning.php ទៅក្នុង codebase ផ្ទាល់ខ្លួនរបស់អ្នក ហើយហៅវិធីសាស្ត្រចំនួនប្រាំមួយ។

require_once 'ZinnProvisioning.php';

$zinn = new ZinnProvisioning(getenv('ZINN_API_KEY'));

// When an order is paid — once per CUSTOMER, then once per SERVICE:
$orgId  = $zinn->account('customer-4211', 'Acme Ltd');
$siteId = $zinn->provision('service-9915', $orgId, 'acme.com', 'mainstream', 'wordpress');
// Store $orgId against your customer and $siteId against your service.

$zinn->suspend($siteId, 'INV-2026-114 unpaid');   // an invoice goes unpaid
$zinn->unsuspend($siteId);                        // they pay
$zinn->terminate($siteId);                        // they cancel — schedules a deletion

// When they click "log in to my hosting" — mint it on the CLICK, never on page render:
header('Location: ' . $zinn->signInLink($siteId));

មិនបានសរសេរ PHP មែនទេ? ការហៅដូចគ្នានេះមាននៅក្នុង ឯកសារយោង API ហើយអ្នកអាចធ្វើការហៅទាំងនោះចេញពីអ្វីក៏បាន។

កូនសោ API

ការអនុញ្ញាតចំនួនប្រាំពីរ និងមិនមានលើសពីនេះទេ៖ org.create, org.read, sites.create, sites.view, sites.delete, reseller.view, reseller.provision។

⛔ មិនមែន reseller.manage ទេ។ កូនសោដែលអ្នកបិទភ្ជាប់ទៅក្នុងផ្ទាំងចេញវិក្កយបត្រ គួរតែអាចផ្អាកអតិថិជនសម្រាប់ការមិនបង់ប្រាក់ និងចូលគណនីឱ្យពួកគេបាន។ វាមិនគួរអាចសរសេរជាន់លើព័ត៌មានសម្ងាត់ច្រកទូទាត់ប្រាក់ផ្ទាល់ខ្លួនរបស់អ្នកបានឡើយ។

វិធានពីរដែលនាំឱ្យខាតបង់ប្រាក់នៅពេលត្រូវបានបំពាន

  1. កំណត់កូនសោគណនីនៅលើ អតិថិជន របស់អ្នក និងគេហទំព័រនៅលើ សេវាកម្ម របស់អ្នក។ ការបញ្ជាទិញលើកទីពីររបស់អតិថិជនត្រូវតែធ្លាក់ចូលទៅក្នុងគណនីដែលពួកគេមានរួចហើយ។ ប្រសិនបើកំណត់កូនសោទាំងពីរលើសេវាកម្ម អតិថិជនម្នាក់នឹងទទួលបានគណនីដែលមិនទាក់ទងគ្នាបី និងផ្ទាំងគ្រប់គ្រងដាច់ដោយឡែកពីគ្នាបី។
  2. ផ្ញើកូនសោ idempotency លើរាល់ការបង្កើត ដែលទាញយកពីលេខសម្គាល់ផ្ទាល់ខ្លួនរបស់អ្នកសម្រាប់ធាតុនោះ។ រាល់ប្រព័ន្ធចេញវិក្កយបត្រតែងតែព្យាយាមឡើងវិញ — ការហៅត្រឡប់របស់ច្រកទូទាត់ប្រាក់មកដល់ពីរដង អ្នកគ្រប់គ្រងដំណើរការផ្តល់សេវាដែលបរាជ័យឡើងវិញ អតិថិជនចុចពីរដង។ បើគ្មានវាទេ ការព្យាយាមលើកទីពីរនឹងបង្កើតគេហទំព័រទីពីរ ហើយអ្នកនឹងត្រូវគិតប្រាក់សម្រាប់វា។ ទាំងម៉ូឌុល និង PHP client ធ្វើកិច្ចការនេះសម្រាប់អ្នក។ ប្រសិនបើអ្នកកំពុងហៅ API ដោយផ្ទាល់ សូមផ្ញើ Idempotency-Key។

វាលចំនួនបីដែលងាយនឹងមើលរំលង

វាលនីមួយៗអាចធ្វើឱ្យខូចកិរិយាសព្ទទាំងមូល ហើយគ្មានវាលណាមួយបង្ហាញក្រៅពីកំហុសសុពលភាពឡើយ — លើកលែងតែវាលទីមួយ ដែលបង្ហាញជា គ្មានអ្វីទាំងអស់៖

  • ⛔⛔ អតិថិជនត្រូវតែស្ថិតនៅលើគម្រោងណាមួយ មុនពេលគេហទំព័រដំបូងរបស់ពួកគេត្រូវបានផ្តល់ជូន ជាមួយ
  • POST /v1/reseller/clients/{orgId}/plan ហើយ subscription_id របស់វាត្រូវបានបញ្ជូនទៅ POST /v1/sites។ នេះគឺជាករណីដែលគ្មានកំហុសណាមួយបង្ហាញឱ្យមើលឃើញឡើយ។ គណនីអតិថិជនថ្មីមិនមាន ការជាវទេ ហើយ POST /v1/sites គ្មានវាលគម្រោងឡើយ ដូច្នេះគេហទំព័រដែលបានផ្តល់ជូនដោយគ្មានវា គឺមិនមានគម្រោងទាល់តែសោះ៖ របាយការណ៍លក់ដុំរបស់អ្នកត្រូវបានបង្កើតឡើងពីការជាវសកម្មរបស់អតិថិជនរបស់អ្នក ដូច្នេះគ្មានធាតុចំណាយណាមួយត្រូវបានបង្កើតឡើងឡើយ ហើយ Zinn® នឹងមិនគិតប្រាក់ពីអ្នកទេ ដរាបណា សេវាកម្មបង្ហោះនៅតែដំណើរការ អតិថិជនរបស់អ្នកមិនទទួលបានកូតាប្រើប្រាស់ណាមួយទេ ដូច្នេះគ្មានកូតាត្រូវបានអនុវត្តចំពោះគេហទំព័ររបស់ពួកគេឡើយ ហើយក៏គ្មានអ្វីសម្រាប់ឱ្យការដំឡើងគម្រោងផ្លាស់ប្តូរបានដែរ។ ការបញ្ជាទិញត្រឡប់មកវិញនូវលេខកូដ 201 គេហទំព័រត្រូវបានរៀបចំដំណើរការ និងបម្រើសេវាកម្មយ៉ាងរលូន។ គ្មានអ្វីនៅខាងចុងទាំងសងខាងរាយការណ៍អំពីបញ្ហាទាំងអស់នេះឡើយ។

លំដាប់លំដោយគឺពិតជាសំខាន់៖ POST /v1/sites កត់ត្រានូវរាល់ការជាវដែលមាននៅពេលវា ដំណើរការ ដូច្នេះគម្រោងដែលបានកំណត់នៅពេលក្រោយ នឹងមិនភ្ជាប់ឡើងវិញដោយស្វ័យប្រវត្តិនោះទេ។

  • POST /v1/sites ទាមទារ stack_type។ ប្រសិនបើខកខានមិនបានបញ្ជាក់ទេ នោះគ្មានការបញ្ជាទិញណាមួយអាចជោគជ័យបានឡើយ។
  • **DELETE /v1/sites/{siteId} ទាមទារ body `{"confirm_domain": "<the site's own
  • domain>"}** — ការវាយបញ្ជាក់ ពីព្រោះនេះជាកិរិយាសព្ទបំផ្លិចបំផ្លាញ។ ប្រសិនបើខកខានមិនបានបញ្ជាក់ទេ នោះគ្មាន ការលុបចោលណាមួយអាចជោគជ័យឡើយ ដូច្នេះសេវាកម្មនៅតែបន្តដំណើរការ ហើយអ្នកនៅតែត្រូវបានគេគិតប្រាក់ដដែល។ សូមទាញយកដូមេនត្រឡប់មកវិញពី GET /v1/reseller/services/{siteId}` ជាជាងការប្រើប្រាស់ កំណត់ត្រាផ្ទាល់ខ្លួនរបស់អ្នក៖ វាត្រូវបានយកទៅប្រៀបធៀបជាមួយដូមេនចម្បងផ្ទាល់របស់គេហទំព័រ ហើយមិនដែលយកទៅប្រៀបធៀបជាមួយឈ្មោះក្លែងក្លាយ (alias) ឡើយ។

សូមអានកំហុសទាំងមូល មិនមែនត្រឹមតែប្រយោគមួយនោះទេ

សារបដិសេធលើការផ្ទៀងផ្ទាត់ គឺត្រូវបានបង្កើតឡើងជាទូទៅដោយចេតនា — "The request was well-formed but failed validation." — ពីព្រោះផ្នែកពាក់កណ្តាលដែលអាចអនុវត្តសកម្មភាពបានគឺស្ថិតនៅក្នុង details ដែលបញ្ជាក់អំពីឈ្មោះវាល និង មូលហេតុ។ ទាំងម៉ូឌុល និង PHP client បន្ថែមវាទៅក្នុងសារដែលពួកគេបង្ហាញដល់អ្នកគ្រប់គ្រងរបស់អ្នក។ ប្រសិនបើអ្នក កំពុងហៅប្រើប្រាស់ API ដោយផ្ទាល់ សូមអាន error.details។ ធាតុមួយចំនួនបង្ហាញតម្លៃទទេជាជាង ប្រយោគ ដែលនោះជាមូលហេតុ max_sites: 0 ត្រូវបានផ្ញើមកកាន់អ្នក នៅពេលដែលគម្រោងតំណាងចែកចាយរបស់អ្នកគ្មានទំហំទំនេរ។

មុនពេលការបញ្ជាទិញដំបូងរបស់អ្នក

គេហទំព័រដែលអតិថិជនរបស់អ្នកទិញ ត្រូវបានរាប់បញ្ចូលក្នុងកូតាគេហទំព័រនៃគម្រោងតំណាងចែកចាយរបស់អ្នក ដូច្នេះអ្នកត្រូវការ គម្រោងដែលមានទំហំទំនេរ។ ការធ្វើតេស្តការតភ្ជាប់មិនអាចរកឃើញបញ្ហានេះបានទេ — វាអានកម្មវិធីរបស់អ្នក និង មិនផ្តល់សេវាកម្មអ្វីទាំងអស់ — ដូច្នេះវារាយការណ៍អំពីគណនីដែលមានដំណើរការល្អ ប៉ុន្តែមិនទាន់អាចលក់បាននៅឡើយ។ ការបញ្ជាទិញដែលបានធ្វើឡើង ដោយគ្មានកូតា នឹងត្រូវបានបដិសេធជាមួយនឹងសារដែលបញ្ជាក់យ៉ាងច្បាស់អំពីបញ្ហានោះ។

ផ្ទៀងផ្ទាត់ការទាញយករបស់អ្នក

បណ្ណសារទាំងពីរត្រូវបានបម្រើតាមរយៈ TLS ពី hostname ផ្ទាល់ខ្លួនរបស់យើង ដោយមិនដែលត្រូវបានបញ្ជូនបន្តទៅកន្លែងផ្សេងឡើយ ព្រមទាំង មានលេខកូដត្រួតពិនិត្យ SHA-256 ត្រូវបានបង្ហាញនៅក្បែរតំណភ្ជាប់ទាញយកនៅលើ downloads page។

ថ្មីៗពីប្លុក

អ្វីដែលយើងបានសរសេរអំពីការបង្ហោះគេហទំព័រ SEO និងការដំណើរការគេហទំព័រក្នុងកម្រិតទ្រង់ទ្រាយធំ។

SEO និងការបង្កើតតំណភ្ជាប់ពីស្រទាប់បង្ហោះ៖ ទស្សនវិស័យរបស់ប្រតិបត្តិករឆ្នាំ 2026

របៀបដែលសេវាបង្ហោះគេហទំព័រជះឥទ្ធិពលលើការធ្វើលិបិក្រម និងតម្លៃតំណភ្ជាប់ក្នុងឆ្នាំ ២០២៦៖ ការរក្សាទំព័រឱ្យស្ថិតក្នុងការធ្វើលិបិក្រម ការត្រួតពិនិត្យដូមេនចាស់ៗមុនពេលបង្កើតគេហទំព័រលើពួកវា ការកសាងតំណភ្ជាប់ដោយគ្មានបន្សល់ស្លាកស្នាមស្វែងរក និងទស្សនៈត្រង់ទៅត្រង់មកអំពីអ្វីដែលហេដ្ឋារចនាសម្ព័ន្ធអាចធ្វើបាន និងមិនអាចធ្វើបានសម្រាប់ SEO។

អានការបង្ហោះ →

ធ្វើឱ្យ WordPress មានល្បឿនលឿន និងមានសុវត្ថិភាព៖ បញ្ជីត្រួតពិនិត្យដំណើរការការងារ និងកម្មវិធីជំនួយ

បញ្ជីត្រួតពិនិត្យជាក់ស្តែងសម្រាប់ WordPress ដែលមានល្បឿនលឿន និងសុវត្ថិភាព៖ ការផ្ទុកទិន្នន័យបណ្តោះអាសន្ននៅកម្រិតម៉ាស៊ីនបម្រើ (server-level caching) ឃ្លាំងផ្ទុកវត្ថុបណ្តោះអាសន្នតាមគេហទំព័រ (object cache) កម្មវិធីជំនួយ (plugins) មួយចំនួនតូចដែលគួរប្រើ ការរក្សាប្រព័ន្ធបច្ចេកវិទ្យាឱ្យទាន់សម័យ និងទំព័រ WooCommerce ដែលអ្នកមិនត្រូវផ្ទុកទិន្នន័យបណ្តោះអាសន្នជាដាច់ខាត។

អានការបង្ហោះ →

របៀបជ្រើសរើសសេវាបង្ហោះគេហទំព័រដែលមានការគ្រប់គ្រងនៅឆ្នាំ 2026៖ ការណែនាំសម្រាប់អ្នកទិញ

អ្វីដែលបែងចែកយ៉ាងពិតប្រាកដរវាងការគ្រប់គ្រងបង្ហោះគេហទំព័រដ៏ល្អ និងប្រអប់ថោកដែលមានផ្ទាំងបញ្ជា — ការផ្ទេរទិន្នន័យ ការបម្រុងទុក ការផ្តាច់ចេញ ការផ្ទុកឃ្លាំងសម្ងាត់ពិតប្រាកដ និងការពង្រីកទំហំដោយស្មោះត្រង់ — និងរបៀបវាយតម្លៃវា មុនពេលអ្នកធ្វើការប្តេជ្ញាចិត្ត។

អានការបង្ហោះ →

អានប្លក់ →

នៅតែជាប់គាំងមែនទេ?

ការគាំទ្រត្រូវបានរួមបញ្ចូលក្នុងរាល់គម្រោងទាំងអស់ ដេប៉ាតឺម៉ង់បម្រើអតិថិជនបើកដំណើរការ 24 ម៉ោងក្នុងមួយថ្ងៃ ហើយអ្នកអាចសរសេរមកកាន់ពួកយើងជាភាសាណាមួយក្នុងចំណោមភាសា 58 របស់យើង — យើងនឹងឆ្លើយតបអ្នកវិញជាភាសារបស់អ្នក។

ទាក់ទងផ្នែកគាំទ្រ → អត្ថបទទាំងអស់ →