1. Why am I getting an authentication error?
Check the following things, after changing your password in Openprovider:
- Ensure that API access is enabled on the account. You can find instructions to enable API access at How to enable API access
- Ensure that the correct password is being entered into the module
- Ensure that the password, and not the hash, is entered into the module
- Ensure that two-factor authentication is not enabled for the credentials which you are using for the module. (To maintain security, create a technical contact in your Reseller Control Panel, and whitelist only the IP addresses of your WHMCS instance )
- Ensure that you see that the module authenticates after clicking "save" (see screenshot, Username, and Password are not marked in red with asterisks *)
-
Is the problem with the whitelist? Try removing all IPs from the whitelist. If your system then works, you can check the IP address of the server hosting your WHMCS instance by the following command (run it via SSH/terminal of your WHMCS server):
curl ifconfig.me
Then you can whitelist the IP you got from the command output.
2. I'm getting an error "Sync Not Supported by Registrar Module"
In order to sync domain statuses, renewal dates, WPP settings, and auto-renew settings between your Openprovider account and your WHMCS instance, you will need to set up the Openprovider cron job (Openprovider cron sync is deprecated and not recommended for WHMCS versions 8+. Please use native WHMCS cron), which is detailed in the document.
3. Does the module support the default domain sync in WHMCS?
Yes, native domain synchronisation is supported since version 3.3. Please ensure that "syncUseNativeWHMCS" is set to "true" in the file 'modules/registrars/openprovider/configuration/advanced-module-configurations.php' to use default domain sync and cron job is configured as per WHMCS documentation. When enabled, WHMCS' native synchronization feature will be used to sync domain data.
Note: Please be aware that WHMCS native sync will only sync data of domains with statuses - Pending Transfer, Pending Registration, and Active. After a domain enters Grace Period (Expired) or Expired status, the WHMCS native sync won't sync data of such domains and the status will only be transitioned out by completing the Renew module command (Registrar Commands >> Renew).
4. How can I allow registering domains which require additional information, such as .es, .us, .travel, .ru, .se, .nu and so on?
The 2.3-beta release of the module introduced a function openprovider_additional_fields
() function, which retrieves the list of required additional information for any given TLD from the Openprovider API.
If you do not have the file <your WHMCS directory>/resources/domains/additionalfields.php
then add the example version from resources/domains/additionalfields.php. Otherwise, add the following lines to the top of your additionalfields.php
file :
<?php
if (function_exists('openprovider_additional_fields'))
$additionaldomainfields = openprovider_additional_fields();
Once this has been added, the correct text fields and/or select boxes will be created automatically on the WHMCS checkout page.
Here you will find more information from the WHMCS website.
5. I want to add IDN support
Some TLDs require an additional data element for IDN support. This can be set up for a given TLD by doing the following:
in the file <WHMCS root>/resources/domains/additionalfields.php
add the following line of array element definitions:
$com_idn_type = array (
'English' => 'ENG',
'Slovenian' => 'SLV',
'Russian' => 'RUS'
);
$additionaldomainfields[".com"][] = array(
"Name" => "idnScript",
'DisplayName'=> "IDN language",
"Type" => "dropdown",
'Options' => join ( $com_idn_type, ',' ),
"Default" => "English",
'Required' => true);
6. How can I add intendedUse for certain TLDs?
Some TLDs require an "intended use" statement when registering. You can set this up for your customers quite easily by doing the following:
In the file <WHMCS root>/resources/domains/additionalfields.php
add the following line of array element definitions:
$additionaldomainfields['.cat'][] = array(
'Name' => 'intendedUse',
'DisplayName' => 'Intended Use',
'Type' => 'text',
'Size' => '30',
'Required' => true
);
Now when the domain is being registered, there will be a text box where the customer can write a description, which the module will send to Openprovider via API.
7. How can I set up default name servers?
This can be found in the WHMCS knowledge base for domain configurations.
To set the default nameservers that WHMCS will use for domain only registrations ordered through the system, navigate to Setup > General Settings > Domains tab.
See attached screenshot (link at the bottom) to see how to do this.
8. How can I hard-code nameservers into the module?
If you using the "DNS management" plugin for WHMCS, this is most likely the issue. A previous version of the module had the Openprovider nameservers hard-coded to be used in the case that DNS management is selected. This has since been removed.
If you'd like to hard-code your nameservers into the module, to be used for register and transfer operations, you can modify the function createNameserversArray
in the file <WHMCS root>modules/registrars/openprovider/OpenProvider/API/APITools.php
Add these variables:
$params['ns1'] = <desired nameserver>
$params['ns2'] = <desired nameserver>
$params['ns3'] = <desired nameserver>
$params['ns4'] = null;
$params['ns4'] = null;
and your domains will be created using the nameservers you've specified.
9. How to debug a "Oops, something went wrong and we couldn't process your request" error?
When trying to view the module credentials page
From their PHP error log they receive an error:
[Tue Feb 20 11:14:33.488187 2018] [:error] [pid 15335] [client
90.74.128.238:57986] [WHMCS Application] ERROR: exception
'Whoops\\Exception\\ErrorException' with message 'Class 'DOMDocument' not found' in /home/corpitse/public_html/clients/modules/registrars/openprovider/OpenProvider/API/Request.php:21
Stack trace: #0
/home/corpitse/public_html/clients/vendor/whmcs/whmcs-foundation/lib/Utility/Error/Run.php(0):
WHMCS\\Utility\\Error\\Run->handleError(1, 'Class 'DOMDocum...',
'/home/corpitse/...', 21) #1 [internal function]:
WHMCS\\Utility\\Error\\Run->handleShutdown() #2 {main}
{"exception":"[object] (Whoops\\\\Exception\\\\ErrorException(code: 1):
Class 'DOMDocument' not found at /home/corpitse/public_html/clients/modules/registrars/openprovider/OpenProvider/API/Request.php:21)"}
[], referer: https://corpresa.com/clients/admin/configregistrars.php
Based on this error, it appears that the DOM extension is not installed on your server. This extension is usually installed by default, so it may have simply been disabled by you or your hosting provider. If you're using CloudLinux, check to see if DOM is enabled.
Please see http://php.net/manual/en/dom.installation.php for more information
10. I want to run the cron job from the web, and not from the command line
Important : Openprovider domain sync cron is deprecated since version 5.3 of the Openprovider domain module, and is not recommended for WHMCS 8+ versions. We suggest that you use the WHMCS native domain sync and do not use the Openprovider custom sync for WHMCS 8 and higher.
From the file <whmcs root>/modules/registrars/openprovider/cron/DomainSync.php
comment out the following:
if((!isset($_SESSION['adminid']) && $_SESSION['adminid'] == false) && !is_cli())
{
exit('ACCESS DENIED. CONFIGURE CLI CRON.');
}
This will allow you to run the file from a public folder.
11. Updating registrant details via WHMCS fails
Reseller is trying to update registrant details via WHMCS having international phone number input interface and automatic formatting option enabled.
Request:
Array ( [postValues] => <?xml version="1.0" encoding="UTF-8"?> <openXML><credentials><username>YHWHMCS</username><password>****************</password><client>whmcs-2.2.8</client></credentials><createCustomerRequest><companyName>De Beste B.V.</companyName><vat></vat><name><initials>J.V</initials><firstName>Jos</firstName><prefix></prefix><lastName>Verkerk</lastName></name><gender>M</gender><address><street>Boddens Hosangweg</street><number>64</number><suffix></suffix><zipcode>2481 LA</zipcode><city>Woubrugge</city><state>Zuid-Holland</state><country>NL</country></address><phone><countryCode>+31</countryCode><areaCode>+31</areaCode><subscriberNumber>.31880101200</subscriberNumber></phone><email>10008@my.yourhost.nl</email><handle>NL904610-NL</handle><additionalData></additionalData></createCustomerRequest></openXML> )
Response:
Array ( [curlResponse] => <?xml version="1.0" encoding="UTF-8"?> <openXML><reply><code>133</code><desc>Invalid telephone region code number!</desc><data/></reply></openXML> [curlErrNo] => 0 [errorMessage] =>
The option can be toggled in WHMCS Admin Dashboard > Configuration > System Settings > General Settings > Localisation (tab).
The option changes the appearance of the phone number input box from one having pre-formatted configuration like:
to a simple empty text field.
Having this option enabled results in wrong number formatting and thus the registrant details update fails.
To workaround just disable the option and specify the phone number in a format like +XXX.XXXXXXX having dot (.) symbol included as a delimiter.
12. Error: "You have not signed the latest version of the contract for registering this domain"
The error indicates that you must sign TLD contracts before ordering domains. You can find TLD contracts at: https://cp.openprovider.eu/documentation/contracts.php and please sign the contract for the TLD for which you got error (for example, if you got the error while trying to register yourdomain.com, sign the .com contract)
13. The cron for downloading the TLD prices was not run yet.
Update: This was fixed in version 5.8.0, we strongly recommend you to update the module to latest version.
Due to the number of TLDs supported by Openprovider, some WHMCS installations may have time-outs when synchronizing the TLD pricing. Loading the TLD prices still requires some time to process after running this command. WHMCS requires a significant amount of time to process all TLDs. The speed depends on how fast your server is as well as your browser. In order to resolve the problem, we suggest,
- Running the script a few more times when there are no other WHMCS tasks/cron jobs running.
- Increase the amount of PHP memory allocated for running scripts (memory_limit=256M or higher).
If you have SSH access, you can try running the script manually as follows:
- Log in to your server via SSH.
- Navigate to the folder 'modules/registrars/openprovider/cron'
- Execute the following command:
php -d error_log='' -d max_execution_time=0 -d memory_limit=256M DownloadTldPrices.php
If you don't have SSH/terminal access to the server, please try adding a cron job like,
15 0 * * * php -d max_execution_time=0 -d memory_limit=256M /PATH_TO_WHMCS/modules/registrars/openprovider/cron/DownloadTldPrices.php
Note: The above cron will run at 12:15 AM at night, please adjust the time if required. Once the cron has been executed, please ensure to remove the cron task since it is a memory-intensive task for your WHMCS server.
14. How to Update Openprovider domain registrar module to latest/newer version
If you haven’t made any customization to the existing module, you can simply remove the ‘openprovider’ folder from "modules/registrars/" and "modules/addons/" and add/copy those folders from the new version - https://github.com/openprovider/Openprovider-WHMCS-domains/releases. If you have made any custom changes to current installation, please perform the following steps:
- Make a backup of your WHMCS database and module folders ('modules/registrars/openprovider', 'includes/hooks', 'resources/domains/additionalfields.php' and 'modules/addons/openprovider'), with any custom modifications.
- Download the version of the module you need from releases. Extract it and upload contents as described in: Install and configure Openprovider domain registrar module.
- Make sure the advanced config file 'modules/registrars/openprovider/configuration/advanced-module-configurations.php' has the right settings. If you have any custom settings in the current version, please ensure to copy/apply those to the new/old version. You can find detailed documentation about advanced module configuration at: Advanced configurations.
15. How to enable/disable ID protection (WPP), DNS management and EPP Code for TLDs
You can configure domain addons you want to offer to your customers like DNS Management, ID protection (Whois Privacy Protection) and EPP code (also known as auth code or transfer code) from your WHMCS Admin Dashboard.
- Navigate to Configuration >> System Settings >> Domain Pricing.
- Select the addon options you want to offer/enable for TLDs using the checkboxes.
- Click on Save Changes.
Import Notes:
- Enable EPP Code option to require an EPP code for transfers of domains that use this extension. If this option is disabled, clients will be able to submit transfer requests without an EPP code (auth code).
- Openprovider does not offer e-mail forwarding at this moment.
If you would like to offer these addons to your customers with a price, you can also configure it from Domain Pricing page (on the right pane).
* ID Protection (Whois Privacy Protection) is free with Openprovider Membership Plans.
For more details about Domain Addons in WHMCS, please refer to official WHMCS documentation.
16. How to enable Domain Auto Registration
Automatic domain registration automates registration and transfer request submissions to supported registrars. Openprovider domain module supports automatic domain registration and transfer submissions and this can be enabled for TLDs either from Registrar TLD Sync or from Domain Pricing page.
From Registrar TLD Sync page (Utilities > Registrar TLD Sync):
From Domain Pricing page (Configuration >> System Settings >> Domain Pricing):
For TLDs you would like to enable auto registration/transfer, select Openprovider from Auto Registration drop down list and click on Save Changes.
- When you enable this for an extension, WHMCS will automatically submit the request to Openprovider as soon as the client pays you for it. WHMCS never submits domain registrations before you receive payment.
- If you disable automatic domain registration, the system will wait to submit the registration until after a client has paid and an admin manually reviews the order and accepts it.
17. TLD Sync Error - Unable to display TLD cost pricing as currency 'XXX' is not defined with an exchange rate.
The error indicates that you haven't configured the currency shown in the error message in WHMCS Currencies (Configuration >> System Settings >> Currencies). For more information, please refer to https://docs.whmcs.com/payments/currencies/
18. How to check my WHMCS, PHP and Openprovider module versions for support?
-
Module Version - You can check the Openprovider domain registrar module version from WHMCS Admin Dashboard >> System Settings >> Domain Registrars >> Openprovider >> click on "Configure" button). You can also check module version in file: modules/registrars/openprovider/OpenProvider/API/APIConfig.php (look for a line with "static public $moduleVersion").
Eg: -
WHMCS Version - You should be able to find the WHMCS version from admin dashboard under System Information (on the left pane).
- PHP version - You can check this from WHMCS Admin Dashboard >> Utilities >> System >> PHP Info.