Ascio WHMCS module

Installation

Github repository: https://github.com/rendermani/ascio-whmcs-plugin

Requirements

Commandline installation

git clone https://github.com/rendermani/ascio-whmcs-plugin.git ascio
cd ascio
php install.php

            

Configuring the plugin

Configuring TLDs

You can use all TLDs that don't require special parameters. Others need a TLD-Plugin

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

It is recommended that you whitelist our callback-ip so only Ascio can send status-messages.

Ascio DNS

Creating new plugin modules (developer instuctions)

You can overwrite all protected/public methods of the Request class, for example:

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:

These TLDs are supported with TLD-plug-in:

A plug-in exists for these TLDs: