Ginagawang totoong mga aksyon sa aming platform ng Zinn Digital® module ang sariling mga button ng WHMCS. Ang isang order ay nagpo-provision ng hosting ng iyong kliyente. Sinususpinde ito ng overdue-invoice automation ng WHMCS. Ang pagmamarka sa invoice bilang bayad na ay nag-aalis ng suspensiyon nito. Ang pagkansela ay nag-iiskedyul ng pagbura. At ang iyong kliyente ay magkakaroon ng button na Log in to hosting panel sa kanilang client area na direktang nagla-log in sa kanila.
Ito ay libre, may lisensyang GPL-2.0-or-later, at walang pribilehiyong daan papunta sa aming platform: bawat tawag na ginagawa nito ay isang dokumentadong endpoint na maaari mo ring gawin nang mag-isa gamit ang iyong sariling API key.
Bago ka magsimula
Kailangan mo ng dalawang bagay, at ang pangalawa ay madalas hindi napapansin ng mga tao.
- Isang Zinn® reseller account na may aktibong programa. Mag-sign up sa
zinndigital.com at i-on ang reselling.
- Isang reseller plan na may site allowance. Ang mga site na ino-order ng iyong mga kliyente ay binabawas sa iyong
plano, kaya kailangan mo ng isa na may natitira pang espasyo.
⚠️ Hindi masasabi sa iyo ng Test Connection kung magtatagumpay ang isang order. Binabasa nito ang iyong programa at walang pino-provision, kaya nag-uulat ito ng maayos at active na account na hindi pa makapagbenta ng anuman. Kung ang iyong unang order ay nabigo gamit ang "This organization has no hosting plan, so it cannot host a site yet", iyon ang nangyari — bumili o palawigin ang iyong reseller plan at ilagay muli ang order. Walang problema sa module.
1. Lumikha ng API key
Sa iyong Zinn® dashboard, buksan ang API keys at gumawa ng isa na may eksaktong ganitong labing-isang permiso:
| Permiso | Bakit ito kailangan |
|---|
org.create | Buksan ang Zinn® account ng iyong kliyente sa kanilang unang order. |
org.read | Basahin ang mga account ng iyong kliyente. |
sites.create | I-provision ang site. |
sites.view | Basahin ang isang serbisyo at ang paggamit nito. |
sites.delete | I-terminate. |
reseller.view | Ilista ang iyong mga naibenta, at basahin ang disk at bandwidth. |
reseller.provision | Suspindihin, alisin ang suspensiyon, i-sign in ang kliyente, itakda ang kanilang plano at baguhin ang kanilang package. |
billing.view | Basahin kung magkano ang aabutin ng isang upgrade bago ito isagawa. |
sites.manage | I-purge ang cache at kumuha ng backup mula sa mga button. |
sites.panel_access | Palitan ang password ng tagapangasiwa ng WordPress. |
hosting.php.manage | Ilipat ang bersyon ng PHP sa isang upgrade o downgrade. |
⛔ Huwag igawad ang reseller.manage. Ang isang key na na-paste sa isang billing panel ay dapat may kakayahang magpigil ng kliyente dahil sa hindi pagbabayad at i-sign in sila. Hindi dapat ito nakapagbabasa at nakapagsusulat muli ng iyong sariling mga kredensyal sa payment-gateway. Umiiral ang reseller.provision upang hindi mo kailangang igawad ang mas malaking permiso. ⛔ Ang org.create ay hindi opsyonal. Kung wala ito, mababasa ng module ang iyong mga account ngunit hindi makapagbubukas ng isa, kaya papasa ang Test Connection at sasagot ang unang order ng 403. ⛔⛔ Ibigay ang buong talahanayan, at tandaan na hindi masasabi sa iyo ng Test Connection kung hindi mo ito nagawa. Binabasa nito ang iyong programa ng reseller at walang pino-provision, kaya berde ito para sa isang key na kulang sa alinman sa mga ito. Ang matatanggap mo sa halip ay isang 403 sa nag-iisang operasyong sakop ng nawawalang permiso, pagkalipas ng ilang buwan, mula sa isang kustomer.
2. I-install ang module
- I-download ang module at i-unzip ito.
- I-upload ang directory na
zinn sa iyong pag-install ng WHMCS upang ang file ng module ay mapunta sa
modules/servers/zinn/zinn.php.
⛔ Dapat tawaging zinn ang directory. Kinukuha ng WHMCS ang mga pangalan ng function ng isang provisioning module mula sa pangalan ng directory nito, kaya ang pagpapalit ng pangalan nito sa zinn-whmcs o zinndigital ay lilikha ng isang module na inililista ng WHMCS, hinahayaan kang piliin, at pagkatapos ay hindi na tinatawag — nang walang anumang error kahit saan. Ang zip ay naka-unpack na sa tamang pangalan; huwag na lamang itong palitan ng pangalan.
3. Idagdag ang server
Sa WHMCS: Configuration → System Settings → Servers → Add New Server.
- Name: kahit ano, hal.
Zinn Digital®
- Hostname:
api.zinndigital.com
- Type:
Zinn Digital®
- Password: ang iyong API key mula sa hakbang 1
⛔ Ang key ay inilalagay sa field ng Password, na iniimbak ng WHMCS nang naka-encrypt. Huwag itong ilagay sa isang opsyon sa pagsasaayos ng produkto — ang mga iyon ay plain text sa database at nakikita ng bawat admin, at ang kredensyal na ito ay maaaring lumikha at sumira sa hosting ng iyong mga kliyente.
Pindutin ang Test Connection. Gumagawa ito ng totoong tawag at nag-uulat kung ano ang sinabi ng aming platform, sa halip na suriin lamang kung napunan ang mga field.
4. Lumikha ng produkto
Configuration → System Settings → Products/Services, pagkatapos ay itakda ang Module Settings sa server na kalalagay mo lamang. Ang mga field ay:
| Field | Kinakailangan | Kung ano ito |
|---|
| Product line | oo | Ang linya ng Zinn® na iyong ibinebenta — mainstream (managed WordPress), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail o reseller. |
| Stack | oo | Kung ano ang bubuuin: wordpress (default), woocommerce, php, static, node, one_click, headless_cms, nextcloud o owncloud. |
| Application | hindi | Para lamang sa mga stack na one_click at headless_cms — kung aling aplikasyon ang i-install. Ang pagpapangalan ng isa sa anumang iba pang stack ay tatanggihan, dahil ang stack na iyon ang nagpapasya kung ano ang mai-install. |
| PHP version | hindi | hal. 8.3. Iwanang walang laman para sa default ng linya. Ang isang bersyon na hindi iniaalok ng linya ay tatanggihan kasama ang listahan ng mga iniaalok nito. |
| Plan code | oo | Ang Zinn® plan na ibinebenta ng produktong ito. Inililista ng GET /v1/reseller/prices ang sa iyo. Ang isang order na wala nito ay tatanggihan — tingnan ang babala sa ibaba. |
| Billing interval | hindi | monthly (default) o annual — ang pagitan kung kailan sinisingil ang iyong wholesale line para sa kliyenteng ito. Kung magkano ang sisingilin mo sa iyong sariling kliyente ay itinatakda sa produkto ng WHMCS at hindi maaapektuhan. |
⛔⛔ Kinakailangan ang Plan code, at ang isang order na wala nito ay sadyang tatanggihan. Hanggang 2026-09-01 ang field ay pandekorasyon lamang at walang nagbasa rito, kaya nag-order ang module ng hosting na walang dalang plano kahit kailan — at bawat kahihinatnan niyon ay tahimik. Ang iyong wholesale statement ay binuo mula sa mga live na subscription ng iyong mga kliyente, kaya walang linya para sa serbisyo at wala kang sinisingil habang tumatakbo ito; walang minanang mga allowance ang iyong kliyente, kaya walang quota sa disk o file ang inilapat sa kanilang site; at walang mababago ang Change Package, kaya ang isang upgrade na naibenta mo ay hindi maisagawa. Ang site ay nag-provision at nagsilbi nang perpekto sa buong panahon.
Tinatanggihan na ngayon ng module ang order sa halip, dahil walang ligtas na plano para hulaan nito: ang isang hula ay magpo-provision ng hosting sa isang planong hindi mo pinili at maaaring hindi mo napresyuhan, at — hindi tulad ng pagtanggi, na mababasa mo kaagad — lilitaw lamang ito kapag may dumating na statement, kung mayroon man.
Itakda ang Auto Setup sa alinman sa gusto mo — ang module ay idempotent sa WHMCS service id, kaya ang muling sinubukang pag-provision ay nagbabalik ng parehong site sa halip na singilin ka para sa pangalawa.
Ano ang ginagawa ng bawat aksyon ng WHMCS
| Aksyon ng WHMCS | Kung ano ang nangyayari sa aming panig |
|---|
| Create | Lumilikha ng Zinn® account ng kliyente (o muling ginagamit ang mayroon na sila) at nagpo-provision ng kanilang site. |
| Suspend | Inilalagay ang site sa hold dahil sa hindi pagbabayad. Napananatili ang nilalaman; walang nabubura. |
| Unsuspend | Inaalis ang iyong pagkahold. |
| Terminate | Nag-iiskedyul ng pagbura sa site, na may palugit na panahon. Lumalabas ang petsa sa client area. |
| Usage update | Nagre-refresh ng disk at bandwidth sa bawat serbisyo, minsan sa isang araw. |
| Log in to hosting panel | Nagbubukas ng isang beses lamang magagamit na link sa pag-sign in nang direkta sa panel ng iyong kliyente. |
| Change Package | Nag-a-upgrade o nagda-downgrade ng serbisyo. Inililipat ang package, at ang bersyon ng PHP kung ang bagong produkto ay may tinukoy na isa. |
| Change Password | Itinatakda ang password ng tagapangasiwa ng WordPress. Hindi lumalabas ang kahon sa mga stack na walang ganoong account. |
| Renew | Kinukumpirma na umiiral pa rin ang serbisyo. Patuloy ang Zinn® hosting, kaya walang remote term na palalawigin. |
| Sync Usage / Purge Cache / Take Backup | Mga button sa pahina ng serbisyo ng admin. Makukuha ng iyong kliyente ang Purge Cache at Take Backup sa kanilang client area. |
| Service tab | Katayuan, plano, disk, bandwidth, anumang naka-iskedyul na pagbura, at kung sino ang naglagay ng suspensiyon. |
| Import | Binabasa ng ListAccounts ang bawat pahina, kaya ang isang pag-import ay hindi maaaring tahimik na huminto sa una. |
Mga Upgrade: sino ang naniningil kanino
Ang iyong kliyente ay hindi kailanman sinisingil ng Zinn®, sa isang order o sa isang upgrade. Sinisingil mo sila sa pamamagitan ng WHMCS; sinisingil ka namin, sa iyong wholesale statement. Kaya inililipat ng Change Package ang mga karapatan ng iyong kliyente at ang linya sa iyong susunod na statement, at hindi gumagalaw ng anumang card — nakuha na ng WHMCS ang pera ng iyong kliyente at kinalkula ang sarili nitong proration.
Ang pangalawang serbisyo ng isang kliyente. Sa parehong plano ito ay isa pang site sa ilalim ng sariling site allowance ng planong iyon, at wala nang karagdagang ibinibigay. Sa isang ibang plano ito ay tatanggihan: ang pagpapalit sa kasalukuyang plano ay mag-iiwan sa isa sa dalawang serbisyo na hindi nasisingil. Ibenta ang pareho sa parehong plano, o i-set up ang kliyente bilang isang hiwalay na tala ng kliyente sa WHMCS.
Umiiral lamang ang Change Password para sa WordPress. Ang Zinn® hosting ay walang iisang "password ng serbisyo" — nararating ng iyong kliyente ang kanilang panel gamit ang button sa pag-sign in — at ang isang site na php o static ay walang account sa aplikasyon na babaguhin. Ganap na itinatago ng WHMCS ang kahon sa halip na magpakita ng isa na hindi maaaring gumana.
Tatlong sagot na hindi mo dapat gawing dalawa
- Maaaring sumagot ang Unsuspend nang may pagtanggi. Nangangahulugan iyon na ang site ay sinuspinde ng aming abuse
team, hindi mo sinuspinde, at walang billing panel na maaaring mag-alis ng suspensiyon nito. Sinasabi ito ng mensahe; ipakita ito sa iyong admin sa halip na subukan muli.
- Nag-iiskedyul ng pagbura ang Terminate, hindi ito direktang nagbubura. Babalik ang petsa bilang
pending_deletion_at at ipinapakita ito ng client area. Ang pagsasabi sa isang kustomer na wala na ang kanilang data kung hindi pa naman ay mas masahol pa kaysa sa walang sabihin sa kanila.
- Maaaring hindi alam ang disk at bandwidth, at ang hindi alam ay hindi zero. Kapag hindi kami makakuha ng
pagbasa, hinahayaan ng module ang datos sa halip na sumulat ng 0 — kung hindi ay magpapakita ang WHMCS sa iyong kustomer ng isang nakapanatag ngunit walang lamang usage bar para sa isang site na wala kaming pagbasa.
Pagtugon sa mga problema
Pumasa ang Test Connection at nabigo ang unang order gamit ang error sa permiso. Nawawala ang org.create sa API key. Kailangang buksan ng module ang account ng kliyente bago nito malikha ang kanilang site.
Nabigo ang isang order na nagsasabing walang hosting plan ang organisasyon. Wala nang natitirang site allowance ang iyong reseller plan, o wala ka pa nito. Tingnan ang Bago ka magsimula sa itaas.
Nabigo ang isang order na bumabanggit ng isang stack. Ang field ng Stack sa produkto ay walang laman o nagpapangalan ng isang bagay na hindi namin binubuo. Itakda ito sa wordpress maliban kung nagbebenta ka ng iba pa.
Nabibigo ang mga pagkansela. Siguraduhing ikaw ay nasa bersyon 1.0.0 o mas bago ng module. Ang mga naunang build ay hindi nagpadala ng kumpirmasyon ng pagbura at bawat termination ay tinanggihan, na nag-iwan sa serbisyo na tumatakbo at naniningil.
Isang pagtanggi na nagpapangalan ng isang field. Pinapangalanan ng aming mga error sa pagpapatunay ang field at ang dahilan sa loob ng mga panaklong pagkatapos ng mensahe, hal. (php_version: 7.2 is not offered on this product line). Iyon ang bahaging may kaukulang aksyon — ang pangungusap sa unahan nito ay sadyang pangkalahatan.
I-verify ang iyong download
Ang bawat archive ay inihahatid sa pamamagitan ng TLS mula sa aming sariling hostname at hindi kailanman inililihis sa isang third-party na host. Ang SHA-256 checksum nito ay nakalimbag sa tabi ng link sa pag-download sa pahina ng mga download. Ihambing ito pagkatapos mag-download:
- macOS o Linux:
shasum -a 256 zinn-whmcs-1.0.0.zip
- Windows:
certutil -hashfile zinn-whmcs-1.0.0.zip SHA256
Wala sa WHMCS?
Mayroong HostBill module at isang single-file PHP client para sa anupaman, parehong libre at pareho sa parehong pahina ng mga download. Bawat endpoint na ginagamit ng mga module ay nasa sanggunian ng API.