Ascio WHMCS module
Installation
Github repository: https://github.com/rendermani/ascio-whmcs-plugin
Requirements
- php 5.3+
- PHP SoapClient module installed
Commandline installation
- Change to your modules/registrars directory
git clone https://github.com/rendermani/ascio-whmcs-plugin.git ascio
cd ascio
php install.php
Configuring the plugin
- Enter the username for the current environment (testing/live).
- Enter the password for the current environment (testing/live).
- Choose your environment (testing/live).
- AutoExpire: Expire domains after registration/transfer. This will prevent domains from being autorenewed.
- DetailOrderStatus: If you endcustomer gets too many status-mail, deactivate this.
- AutoCreateDNS: If you are using AscioDNS, records can be automaticly created after registering the domain.
- DNS_Default_Zone: The IP of your Webserver. A record will be created in Ascio DNS. This is the IP-Address for the @ and www record.
- DNS_Default_Mailserver: The IP of your Mailserver. A record will be created in Ascio DNS. This is the IP-Address for the MX-record.
- DNS_Default_Mailserver_2: The IP-Adress of the backup-mail-server.
- Proxy Lite: If this is selected the name still will be visible (Privacy). Otherwise the full contact details will be hidden (Proxy).
Configuring TLDs
You can use all TLDs that don't require special parameters. Others need a TLD-Plugin
- Not all TLDs and fields are configured. But you can add your own TLD-Definition in ascio/tlds
Messaging - polling and callbacks
To configure the perfect messaging you need to create a cron-job with polling.php. Additionally you need to contact partnerservice, and tell them your callback-url. For example: Callback URL
This is the output when you provide no parameters (for testing):
Something unexpected happened: object(Exception)#7 (7) {
["message":protected]=>
string(34) "Please provide callback parameters"
["string":"Exception":private]=>
string(154) "exception 'Exception' with message 'Please provide callback parameters' in /var/www/whmcs/modules/registrars/ascio/callbacks.php:17
Stack trace:
#0 {main}"
["code":protected]=>
int(1)
["file":protected]=>
string(53) "/var/www/whmcs/modules/registrars/ascio/callbacks.php"
["line":protected]=>
int(17)
["trace":"Exception":private]=>
array(0) {
}
["previous":"Exception":private]=>
NULL
}
Having both messaging types ensures a fast and secure realtime messaging. When a callback arrives via HTTP-Get this is done
- Set the WHMCS status
- ACK the message, so that it isn't re-polled later
- Do expire and create-dns if configured in the plug-in configuration
- Poll every 5 minutes with polling.php. If the callback worked like it should, the poll-queue is always empty as all messages a ACKed after they are received. The polling.php is only used as a backup.
It is recommended that you whitelist our callback-ip so only Ascio can send status-messages.
Ascio DNS
- WHMCS has only a minimal DNS-management, but there are plugins. Please contact your account-manager for an AscioDNS account.
Creating new plugin modules (developer instuctions)
You can overwrite all protected/public methods of the Request class, for example:
- mapToOrder
- mapToRegistrant
- mapToAdmin
- mapToTech
- mapToTrademark
- mapToOrder
- tranferDomain
- registerDomain
- getEPPCode
Please look here for some examples.
<?php
class de extends Request {
public function transferDomain($params=false) {
$params["regperiod"] = 0 ;
return parent::transferDomain($params);
}
public function getEPPCode($params) {
$characters = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789+-/*";
$params["eppcode"] = Tools::generateEppCode(12, $characters);
parent::getEPPCode($params);
return $params;
}
protected function mapToRegistrant($params) {
$contact = parent::mapToRegistrant($params);
$regNr1 = $params["additionalfields"]["Tax ID"];
$regNr2 = $contact["custom"]["RegistrantNumber"];
$contact["RegistrantNumber"] = $regNr1 ? $regNr1 : $regNr2;
return $contact;
}
protected function mapToAdmin($params) {
$contact = parent::mapToAdmin($params);
if(!$contact["custom"]["Fax"]) $contact["Fax"] = $contact["Phone"];
return $contact;
}
protected function mapToTech($params) {
$contact = parent::mapToAdmin($params);
if(!$contact["custom"]["Fax"]) $contact["Fax"] = $contact["Phone"];
return $contact;
}
}
?>
This is the example of the .de module. In the method mapToRegistrant the VAT is taken from the custom-field of the user, or from the order-parameters. The EPP-Code is generated with DENIC rules.
Additional domain fields
WHMCS doesn't allow to store the TLD-Fields in the plugin. So the parameters need to be inserted manually into the includes/additionaldomainfields.php file. The parameters that are missing can be inserted from this file: https://github.com/rendermani/ascio-whmcs-plugin/blob/master/includes/additionaldomainfields.php. Please look at the .nl TLD to see how these fields are referenced inside the TLD-module
Supported WHMCS features
The Ascio WHMCS-plugin supports these features:
- Register
- Transfer
- Renew
- Registrar Lock
- Update Nameservers
- Update WHOIS
- Get EPP Code
- Register Nameservers
- DNS Record Management
- Realtime Status (no sync needed)
- ID-Protection (privacy/proxy)
These TLDs are supported with TLD-plug-in:
- .ac
- .ac.at
- .ac.fj
- .ac.fk
- .ac.il
- .ac.jp
- .ac.ke
- .ac.mu
- .ac.mw
- .ac.nz
- .ac.rw
- .ac.tz
- .ac.ug
- .ac.vn
- .academy
- .accountants
- .actor
- .ad.jp
- .ae
- .ae.org
- .af
- .africa.com
- .ag
- .agency
- .agr.br
- .agro.pl
- .aid.pl
- .airforce
- .am
- .am.br
- .apartments
- .aq
- .ar.com
- .archi
- .army
- .art.br
- .arts.nf
- .arts.ve
- .asso.mc
- .associates
- .at
- .atm.pl
- .attorney
- .auction
- .audio
- .auto.pl
- .band
- .bar
- .bargains
- .bayern
- .bbs.tr
- .be
- .beer
- .best
- .bf
- .bi
- .bib.ve
- .bid
- .bike
- .bio
- .biz
- .biz.fj
- .biz.ki
- .biz.nr
- .biz.pl
- .biz.pr
- .biz.tj
- .biz.tr
- .biz.vn
- .bj
- .black
- .blackfriday
- .blog.br
- .blue
- .bo
- .boutique
- .br.com
- .brussels
- .bt
- .build
- .builders
- .business
- .buzz
- .bz
- .bzh
- .cab
- .camera
- .camp
- .capetown
- .capital
- .cards
- .care
- .career
- .careers
- .cash
- .catering
- .cc
- .cd
- .center
- .ceo
- .cf
- .cg
- .ch
- .cheap
- .chernovtsy.ua
- .christmas
- .church
- .city
- .claims
- .cleaning
- .click
- .clinic
- .clothing
- .club
- .club.tw
- .cm
- .cn.com
- .cnkeyword
- .co
- .co.ag
- .co.at
- .co.ba
- .co.bw
- .co.bz
- .co.cg
- .co.cm
- .co.com
- .co.dm
- .co.ee
- .co.fk
- .co.ga
- .co.gg
- .co.gl
- .co.gy
- .co.il
- .co.in
- .co.je
- .co.ke
- .co.kn
- .co.lc
- .co.ls
- .co.me
- .co.ms
- .co.mu
- .co.na
- .co.ni
- .co.nl
- .co.no
- .co.nz
- .co.pn
- .co.rw
- .co.sz
- .co.tj
- .co.ug
- .co.uk
- .co.uz
- .co.ve
- .co.vi
- .co.za
- .co.zw
- .codes
- .coffee
- .cologne
- .com
- .com.af
- .com.ag
- .com.am
- .com.ar
- .com.aw
- .com.bo
- .com.bs
- .com.bt
- .com.bz
- .com.cd
- .com.cg
- .com.cm
- .com.co
- .com.cv
- .com.de
- .com.dm
- .com.fj
- .com.gh
- .com.gl
- .com.gy
- .com.hn
- .com.hr
- .com.ht
- .com.is
- .com.jm
- .com.kg
- .com.kh
- .com.ki
- .com.kn
- .com.kz
- .com.lc
- .com.lk
- .com.lr
- .com.ly
- .com.mg
- .com.mk
- .com.mm
- .com.ms
- .com.mt
- .com.mu
- .com.mv
- .com.mx
- .com.na
- .com.nf
- .com.ng
- .com.ni
- .com.nr
- .com.pe
- .com.ph
- .com.pl
- .com.pr
- .com.ps
- .com.py
- .com.rw
- .com.sa
- .com.sb
- .com.sc
- .com.sl
- .com.sn
- .com.so
- .com.tj
- .com.tw
- .com.ua
- .COM.UG
- .com.uy
- .com.uz
- .com.vc
- .com.ve
- .com.vi
- .com.vn
- .com.ye
- .community
- .company
- .computer
- .condos
- .construction
- .consulting
- .contractors
- .cooking
- .cool
- .coop
- .coop.br
- .coop.mw
- .country
- .credit
- .creditcard
- .cri.nz
- .crimea.ua
- .cruises
- .cv
- .cv.ua
- .cx
- .cz
- .dance
- .dating
- .de.com
- .deals
- .degree
- .democrat
- .dental
- .dentist
- .desi
- .diamonds
- .diet
- .digital
- .direct
- .directory
- .discount
- .dj
- .dm
- .dn.ua
- .domains
- .donetsk.ua
- .dp.ua
- .durban
- .ebiz.tw
- .ed.jp
- .edu
- .edu.gl
- .edu.is
- .edu.kg
- .edu.kh
- .edu.kn
- .edu.kz
- .edu.lb
- .edu.lk
- .edu.lr
- .edu.mt
- .edu.mw
- .edu.ng
- .edu.ni
- .edu.pl
- .edu.pr
- .edu.py
- .edu.rw
- .edu.sa
- .edu.sv
- .edu.tr
- .edu.uy
- .edu.ve
- .edu.vn
- .education
- .eg
- .emp.br
- .engineer
- .engineering
- .enterprises
- .equipment
- .esp.br
- .estate
- .etc.br
- .eu
- .eu.com
- .events
- .exchange
- .expert
- .exposed
- .fail
- .faith
- .far.br
- .farm
- .fie.ee
- .finance
- .financial
- .firm.in
- .firm.nf
- .firm.ve
- .fish
- .fishing
- .fitness
- .flights
- .florist
- .fm
- .fm.br
- .forsale
- .foundation
- .fund
- .furniture
- .futbol
- .ga
- .gallery
- .game.tw
- .gb.com
- .gb.net
- .gd
- .geek.nz
- .gen.in
- .gen.nz
- .gen.tr
- .gent
- .geo.jp
- .gf
- .gg
- .gift
- .gifts
- .gives
- .gl
- .glass
- .global
- .gm
- .gmina.pl
- .go.jp
- .go.tz
- .go.ug
- .gob.gt
- .gob.mx
- .gob.ni
- .gob.sv
- .gos.pk
- .gouv.rw
- .gp
- .gq
- .gr.com
- .gr.jp
- .graphics
- .gratis
- .gripe
- .gs
- .gsm.pl
- .gub.uy
- .guide
- .guitars
- .guru
- .gy
- .hamburg
- .haus
- .health.vn
- .healthcare
- .help
- .hiphop
- .hiroshima.jp
- .hiv
- .hk.com
- .hk.org
- .hm
- .hn
- .holdings
- .holiday
- .horse
- .host
- .hosting
- .house
- .how
- .ht
- .hu.com
- .idf.il
- .idv.tw
- .if.ua
- .imb.br
- .immo
- .immobilien
- .in
- .in.ua
- .ind.br
- .ind.gt
- .ind.in
- .industries
- .inf.br
- .info
- .info.fj
- .info.hu
- .info.ki
- .info.nf
- .info.nr
- .info.pl
- .info.pr
- .info.tr
- .info.ve
- .info.vn
- .ink
- .institute
- .insure
- .int
- .int.ar
- .int.bo
- .int.cv
- .int.is
- .int.mw
- .int.rw
- .int.ve
- .int.vn
- .international
- .investments
- .io
- .iq
- .is
- .it.ao
- .je
- .jetzt
- .joburg
- .jp.net
- .jpn.com
- .juegos
- .kaufen
- .kg
- .kh.ua
- .kharkov.ua
- .kherson.ua
- .ki
- .kiev.ua
- .kim
- .kirovograd.ua
- .kitchen
- .kiwi
- .kiwi.nz
- .km
- .kn
- .koeln
- .kr.com
- .kr.ua
- .ks.ua
- .kz
- .l.lc
- .la
- .land
- .lawyer
- .lc
- .lease
- .lg.jp
- .lg.ua
- .lgbt
- .li
- .life
- .lighting
- .limited
- .limo
- .link
- .lk
- .loans
- .london
- .lt
- .ltda
- .lu
- .lugansk.ua
- .lutsk.ua
- .luxury
- .lviv.ua
- .ly
- .mail.pl
- .maison
- .management
- .maori.nz
- .market
- .marketing
- .md
- .me
- .med.ee
- .med.sa
- .media
- .media.pl
- .meet
- .melbourne
- .menu
- .mex.com
- .mg
- .miasta.pl
- .mk
- .ml
- .mn
- .mobi
- .moda
- .moe
- .monash
- .mortgage
- .moscow
- .mq
- .ms
- .mu
- .muni.il
- .museum.mw
- .mx
- .na
- .nagasaki.jp
- .nagoya
- .name
- .name.fj
- .name.pr
- .name.vn
- .navarra.museum
- .navy
- .nc
- .ne.jp
- .ne.tz
- .NE.UG
- .net
- .net.af
- .net.ag
- .net.ar
- .net.ba
- .net.bo
- .net.br
- .net.bs
- .net.bz
- .net.cm
- .net.co
- .net.cu
- .net.cy
- .net.fj
- .net.fk
- .net.ge
- .net.gg
- .net.gl
- .net.gy
- .net.ht
- .net.il
- .net.in
- .net.is
- .net.je
- .net.kg
- .net.kh
- .net.ki
- .net.kn
- .net.kz
- .net.lb
- .net.lc
- .net.lr
- .net.ly
- .net.me
- .net.mt
- .net.mu
- .net.mw
- .net.nf
- .net.ng
- .net.ni
- .net.nr
- .net.nz
- .net.pe
- .net.pg
- .net.ph
- .net.pl
- .net.pr
- .net.ps
- .net.py
- .net.rw
- .net.sa
- .net.sb
- .net.sc
- .net.sl
- .net.so
- .net.tj
- .net.tl
- .net.tr
- .net.ua
- .net.uk
- .net.uy
- .net.uz
- .net.vc
- .net.ve
- .net.vi
- .net.vn
- .net.ye
- .net.za
- .network
- .nf
- .ng
- .ngo.ph
- .ni
- .nieruchomosci.pl
- .ninja
- .no.com
- .nom.ag
- .nom.co
- .nom.fk
- .nom.ni
- .nom.pl
- .nom.tr
- .nom.ve
- .nr
- .nz
- .od.ua
- .odessa.ua
- .okinawa
- .onl
- .ooo
- .or.at
- .or.jp
- .or.tz
- .or.ug
- .org
- .org.af
- .org.ag
- .org.ar
- .org.bo
- .org.br
- .org.bs
- .org.bt
- .org.bz
- .org.cd
- .org.cu
- .org.cv
- .org.cy
- .org.ee
- .org.eg
- .org.fj
- .org.fk
- .org.ge
- .org.gg
- .org.gh
- .org.gl
- .org.hn
- .org.hu
- .org.il
- .org.in
- .org.is
- .org.je
- .org.kg
- .org.kh
- .org.ki
- .org.kn
- .org.kz
- .org.lb
- .org.lc
- .org.lk
- .org.lr
- .org.ls
- .org.ly
- .org.mg
- .org.mt
- .org.mu
- .org.mw
- .org.mx
- .org.na
- .org.ng
- .org.ni
- .org.nr
- .org.nz
- .org.pe
- .org.ph
- .org.pl
- .org.pr
- .org.ps
- .org.py
- .org.sa
- .org.sb
- .org.sc
- .org.sl
- .org.so
- .org.sv
- .org.tl
- .org.tr
- .org.tw
- .org.ua
- .ORG.UG
- .org.uk
- .org.uy
- .org.uz
- .org.vc
- .org.ve
- .org.vi
- .org.vn
- .org.zw
- .organic
- .osaka.jp
- .other.nf
- .p.lc
- .paris
- .partners
- .parts
- .pc.pl
- .pe
- .per.kg
- .per.kh
- .per.nf
- .pf
- .ph
- .photo
- .photography
- .photos
- .physio
- .pics
- .pictures
- .pink
- .pizza
- .pl
- .place
- .plumbing
- .pn
- .powiat.pl
- .pr
- .press
- .pri.ee
- .priv.hu
- .priv.pl
- .pro.fj
- .pro.pr
- .pro.vn
- .productions
- .properties
- .property
- .ps
- .psi.br
- .pub
- .pub.sa
- .pvt.ge
- .pw
- .qa
- .qc.com
- .qpon
- .quebec
- .radio.am
- .radio.fm
- .realestate.pl
- .rec.br
- .rec.nf
- .rec.ve
- .recipes
- .red
- .red.sv
- .rehab
- .reise
- .reisen
- .rel.pl
- .rentals
- .repair
- .report
- .republican
- .rest
- .restaurant
- .reviews
- .rich
- .rip
- .rocks
- .rodeo
- .ru.com
- .ruhr
- .rw
- .ryukyu
- .sa
- .sa.com
- .saarland
- .sarl
- .sc
- .sc.ug
- .sch.lk
- .school.nz
- .schule
- .se.com
- .se.net
- .sebastopol.ua
- .services
- .sex.pl
- .sexy
- .sh
- .shiksha
- .shoes
- .shop.pl
- .singles
- .sklep.pl
- .sl
- .sm
- .sn
- .so
- .social
- .software
- .solar
- .solutions
- .sos.pl
- .soy
- .space
- .sport.hu
- .sr
- .srl
- .srv.br
- .st
- .store.nf
- .store.ve
- .su
- .sumy.ua
- .supplies
- .supply
- .support
- .surf
- .surgery
- .sx
- .sydney
- .systems
- .szkola.pl
- .targi.pl
- .tattoo
- .tax
- .tc
- .te.ua
- .tec.ve
- .technology
- .tel
- .ternopil.ua
- .tg
- .tienda
- .tips
- .tj
- .tl
- .tm.cy
- .tm.hu
- .tm.mc
- .tm.mt
- .tm.pl
- .tmp.br
- .today
- .tokyo
- .tokyo.jp
- .tools
- .top
- .tourism.pl
- .town
- .toys
- .trade
- .training
- .travel
- .travel.pl
- .tur.br
- .turystyka.pl
- .tv
- .tv.bo
- .tv.br
- .tv.tr
- .tw
- .ua
- .ug
- .uk.com
- .uk.net
- .um
- .university
- .uno
- .us.com
- .us.org
- .uu.mt
- .uy
- .uy.com
- .uz
- .uz.ua
- .uzhgorod.ua
- .vacations
- .vc
- .vegas
- .ventures
- .vet
- .vg
- .vi
- .viajes
- .villas
- .vision
- .vlaanderen
- .vn
- .vodka
- .voting
- .voyage
- .wales
- .wang
- .watch
- .waw.pl
- .web.nf
- .web.tj
- .web.tr
- .web.ve
- .web.za
- .webcam
- .website
- .wien
- .wiki
- .works
- .world
- .ws
- .wtf
- .xn--3ds443g
- .xn--55qx5d
- .xn--6frz82g
- .xn--6qq986b3xl
- .xn--80adxhks
- .xn--80ao21a
- .xn--80asehdb
- .xn--c1avg
- .xn--fiq228c5hs
- .xn--fzc2c9e2c
- .xn--i1b6b1a6a2e
- .xn--io0a7i
- .xn--kpry57d
- .xn--mgberp4a5d4ar
- .xn--pgbs0dh
- .xn--q9jyb4c
- .xn--wgbh1c
- .xn--wgbl6a
- .xn--xkc2al3hye2a
- .xn--ygbi2ammx
- .xyz
- .ye
- .yokohama
- .za.com
- .zaporizhzhe.ua
- .zhitomir.ua
- .zone
- .zp.ua
- .zt.ua
A plug-in exists for these TLDs:
- asia
- ca
- co.uk
- de
- dk
- es
- fi
- fr
- it
- jobs
- nl
- pl
- pro
- ru
- xxx
- nl
- com.au
- se
- nu