Changes in version 3.10
Java Docs updated
Changes related to classes and methods:
New Classes and Methods
| Domains Kit | |
| New Class Name | New Method |
| ThirdLevelDotUk | String invoiceOption |
| ThirdLevelDotUk | String existingEndTime |
New Parameters introduced in Existing Methods
| Other Products Kit | ||
| Class Name | Method Name | New Parameters |
| EngageOrder | renew | String invoiceOption |
| EngageOrder | renew | String existingEndTime |
| Domains Kit | ||
| Class Name | Method Name | Deprecated Parameters |
| ZoneOrder | add | “No Of Records” in DomainHash |
| Domains Kit | |||
| Class Name | Deprecated Method | Suggested Class | Suggested Method |
| DomContact | addDefaultContact | DomContact | addDefaultContacts |
| DomContact | add | DomContact | addContact |
| DomContact | list | DomContact | listByType |
| DomContactExt | isValidRegistrantContact | DomContactExt | isValidContact |
| DomOrder | transferDomain | DomOrder | addTransferDomain |
| DomOrder | add | DomOrder | registerDomain |
| ZoneOrder | mod | ZoneOrder | Functionality not required anymore |
| DotEu | tradeDomain | DotEu | trade |
| DotEu | transferDomain | DotEu | transfer |
| DotEu | add | DomOrder | registerDomain |
| Core Kit | |||
| Class Name | Deprecated Method | Suggested Class | Suggested Method |
| Customer | addCustomer | Customer | signUp |
| Customer | modDetails | Customer | mod |
| Reseller | addReseller | Reseller | signUp |
| Reseller | modDetails | Reseller | mod |
| Reseller | addResellerWithStateId | Reseller | Functionality not required anymore |
| OrderSetup | getResellerSlabPercentageForProducts | OrderSetup | Functionality not required anymore |
| OrderSetup | getCustomerSlabPercentage | OrderSetup | Functionality not required anymore |
Changes in version 3.9
Changes related to classes and methods:
The following method in the Domains Kit is deprecated and its use should be discontinued -
Deprecated method Class New method to be used isValidRegistrantContact DomContactExt isValidContact
Changes in version 3.8
Java Docs updated
Changes related to classes and methods:
The following changes have been introduced under the DotEu class within the Domains Kit -
The following new methods have been introduced under DigitalCertificateOrder class within the Other Products Kit -
The following new methods have been introduced under DigitalCertificateOrder class within the Other Products Kit -
The following new methods have been introduced under DigitalCertificateOrder class within the Other Products Kit -
Changes in version 3.7
Java Docs updated
Changes related to classes and methods:
Some old parameters have been removed and new parameters introduced in their place under the following methods -
| LinuxHostingOrder Class | ||
| Method | Old Parameter | New Parameters |
| add | Hashtable orderParams | String packageKey*, boolean ssl# |
| mod | Hashtable orderParams | String packagekey*, boolean ssl#, int excessBandwidth## |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| getModPricing | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| WindowsHostingOrder Class | ||
| Method | Old Parameter | New Parameters |
| add | Hashtable orderParams | String packageKey*, boolean ssl# |
| mod | Hashtable orderParams | String packagekey*, boolean ssl#, int excessBandwidth## |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| getModPricing | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| MailHostingOrder Class | ||
| Method | Old Parameter | New Parameters |
| add | Hashtable orderParams | String packageKey* |
| mod | Hashtable orderHash | String packagekey*, int additionalMailBoxes** |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey*, int additionalMailBoxes** |
| getModPricing | Hashtable orderParams | String packageKey*, int additionalMailBoxes** |
| SiteBuilder Class | ||
| Method | Old Parameter | New Parameters |
| mod | Hashtable orderParams | String packageKey* |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey* |
NOTE:* packageKey will be the Identifier Key of the Plan (plan1, plan2, plan3, plan4) for which the Order needs to be added/modified.
# ssl will be true or false depending whether the user wants Dedicated IP / SSL for the Order placed.
## excessBandwidth is the Bandwidth which the user wants over and above the Bandwidth of the Order’s current plan.
** additionalMailBoxes is the number of additional mail boxes over and above the existing ones in blocks of 100 accounts.
Changes in version 3.6
Java Docs updated
Changes related to classes and methods:
getProductMetadata – Product class
| Deprecated method | Class | New method to be used |
| add | DomContact | addContact |
| addDefaultContact | DomContact | addDefaultContacts |
| list | DomContact | listByType |
| add | DomOrder | registerDomain |
| transferDomain | DomOrder | addTransferDomain |
| transferDomainWithoutValidation | DomOrder | addTransferDomain |
| addTransferDomainWithoutvalidation | DomOrder | addTransferDomain |
| add | DotEu | registerDomain in DomOrder class |
While these methods are currently available, they are no longer supported and may be discontinued in the near future.
Changes in version 3.5
Java Docs updated
Changes related to classes and functions:
getList – Country class
getStateListForCountry – Country class
getDetails – Order class
addResellerWithStateId – Reseller class
Changes in version 3.4
Java Docs Updated
New Classes introduced in all Kits:
Core Kit
TaxService
getApplicableTaxes
getHashedTaxRules
Domains Kit
DotEu
getEUCountryList
tradeDomain
transferDomain
add
isEUCountry
DotEuContact
mod
add
addEuDefaultContact
DomOrder
validateDomainRegistrationParams
validateDomainTransferParams
addTransferDomainWithoutvalidation
addWithoutValidation
Hosting Kit
WindowsHostingPlanOnlyOrder
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
LinuxHostingPlanOnlyOrder
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
MailHostingPlanOnlyOrder
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
list
MailHostingSetup
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
WindowsHostingSetup
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
LinuxHostingSetup
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
Other Products Kit
DigitalCertificateOrder
add
getCertPrice
SiteBuilderSetup
getPricingKeyPricingParamMap
EngageSetup
getPricingKeyPricingParamMap
Changes in version 3.3
Short tags have been removed from the response.php file.
3 new functions have been added in the Core Kit under the following classes:
authenticateCustomerId – Customer class
login – Customer class
getOrderIdByDomainAndProductCategory – Order class
Bug Fix – A minor Java Script problem was causing the frame links in the examples to not work in some browsers like Mozilla and Opera.
Changes in version 3.2.1
WSDL Endpoint changed
Changes in version 3.2
New methods added viz. Order.removeCustomerLock, Order.getLockList
The testing form provided now has a third frame which accepts the standard parameters passed in every call. If you set these parameters from the form, you can make test calls independent of the settings in the properties/constants file.
Changes in version 3.1
Minor bugs in WSDL files fixed.
Changes in version
Extensive changes made. Please download the kit and read the appropriate Javadocs for details.
Added the method Customer.delete() which allows you to delete a Customer
Added the method DomOrder.cancelTransferRequest() which allows you to cancel the transfer-in request for a domain name
Added the method Order.sendRfa() which allows you to re/send the email asking for transfer-in approval for domain names.
Bug fix in Domain.BulkLockOrder().
Bug fix in Modify Customer Details and Modify Contact Details forms
More details in the Javadocs for DomOrder.getDetails()
Link to new Demo Server added.
Removed Function Overloading
Move Service functionality added in API
Add Funds functionality for both Sub-Resellers and Customers also added.
Domain Forwarding, Mail Forwarding, Managed DNS Products now available through the API.
DomUsContact class
New utility class Response class is introduced, which can be used for formatted output. The characteristics of the Response class are listed below:
listContact() function
getCustomerAvailableBalance() fuction
getCustomerId() function
Tags: Api, Core Kit, Customer Signup, Deprecated Methods, DNS, Java, Java Docs, Kit Class, nexusCategory facility, Parameters, Php, Registerdomain, SSL
Follow the instructions below to begin integration with the API using .NET.
Make sure you have read the General API Integration Instructions first. If you have already integrated the .NET API Kit at your end, read the Change Log first to know what has changed since.
Reference:
General API Integration Instructions >>
Change Log >>
Step 1. Download the API Kit
Click the link below to download the relevant API kits (updated on 6th March, 2008).
Option 1 – Setup Application
NET_Core_Setup_v3_10.zip
NET_Domains_Setup_v3_10.zip
NET_Hosting_Setup_v3_10.zip
NET_OtherProducts_Setup_v3_10.zip
Option 2 – Compressed ZIP File
NET_CoreExamples_v3_10.zip
NET_DomainsExamples_v3_10.zip
NET_HostingExamples_v3_10.zip
NET_OtherProductsExamples_v3_10.zip
Step 2. Download the API Documentation
The complete documentation of all classes and methods available in the API can be found in the Docs below. The Docs below are javadocs, but the function names and explanations remain the same for all the platforms and the documentation is self explanatory. We recommend you download the docs and read through them completely once before you integrate your application (updated on 6th March, 2008).
Core_Docs_v3_10.zip
Domains_Docs_v3_10.zip (updated on 1st April, 2008)
Hosting_Docs_v3_10.zip
OtherProducts_Docs_v3_10.zip
Step 3. Install the API Kit
There are two ways by which you may install the API Kit on your computer:
Option 1 – Setup Application
We recommend that you download, unzip and run the setup file. First, however, please be sure that you have administrator privileges to install applications on the computer. If you’re hosting your website with a third-party provider and do not have the rights to install applications, then you will not be able to use the setup application to install the kit. Therefore, you may manually install and use the required API files from our compressed ZIP file option (Refer to Option 2 below).
The setup application will perform the following tasks:
A .NET dll containing the kit, and the relevant documentation, will be placed inside your “Program Files” folder; by default, the path would be “C:Program Files”. Therefore, you should be able to find the DLL and the documentation corresponding to your kit. Please ensure that you have the .NET runtime installed before you attempt to use the API kit.
Relevant shortcuts will be placed in your start menu.
If you have Microsoft Internet Information Server version 5.0 or greater (IIS) installed, the setup file will create a virtual directory named as OrderBoxCoreExamples , OrderBoxDomainsExamples, OrderBoxHostingExamples, OrderBoxOtherProductsExamples in your “Default Web Site”. The setup file allows you to give the virtual directory any name of your choice. This virtual directory contains a Visual Studio .NET project called OrderBoxCoreExamples , OrderBoxDomainsExamples, OrderBoxHostingExamples, OrderBoxOtherProductsExamples, which illustrates every function provided in the OrderBox API. You may run the examples by either by:
Opening it in Visual Studio.Net and pressing the F5 key, or
Visiting the url http://localhost/examples/ in your browser.
Option 2 – Compressed ZIP File
Download the zip file and extract the files to any temporary folder. The temporary folder will now contain the following subfolders:
OrderBoxCoreExamples , OrderBoxDomainsExamples, OrderBoxHostingExamples, OrderBoxOtherProductsExamples – The folder contains the example files to illustrate every method in the kit.
bin – This folder contains the actual kit DLL file. This is a .NET DLL, and requires the .NET runtime to be pre-installed, for use.
Installing the examples on your own computer:
Create the Examples folder (OrderBoxCoreExamples , OrderBoxDomainsExamples, OrderBoxHostingExamples, OrderBoxOtherProductsExamples) inside the root of any website configured in IIS, on your computer. IIS contains a default website called “Default Web Site”, having it’s root folder set to “c:Inetpubwwwroot”. If you have a default installation of IIS, you would create a subfolder called “examples” inside that root folder. Please note that you may name the examples directory as you please, you are not restricted to the name OrderBoxCoreExamples , OrderBoxDomainsExamples, OrderBoxHostingExamples, OrderBoxOtherProductsExamples.
Open the IIS management console by navigating to “Start > Programs > Administrative Tools > Internet Information Services”
Now, we need to create an “Application Root” for the examples folder. This can be accomplished by opening the properties window for that directory and clicking on the “Create” button.
If you successfully completed the above steps, you may open your browser and point it to http://localhost/examples (if you gave your examples folder some other name, replace the last word of the URL with that name).
Step 4. Run the examples
Please note first that the ASP.NET examples are provided solely to help illustrate usage of the ASP.NET Kit. You may use the example files directly, or simply use them as a reference project while developing your application to interface with the OrderBox API.
IIS 5.0 and the .NET runtime MUST be installed on your machine, BEFORE you run the kit setup file.
After you’ve installed the ASP.NET examples, open your browser, and point it to “http://localhost/your-examples-folder” (you may use the name given to the examples folder to replace “examples” in the preceding url). This shall open the ASP.NET examples webpage, which is divided into three frames:
The frame on the top allows you to mention the Service URL, your Reseller Username, your Password, ParentID, Language Preference, Role, Debug Mode to make API calls independent of the credentials provided in the APIConstants.vb file. This frame also provides you a checkbox to enable/disable the credentials of this frame. That is, if the checkbox is not selected the APIConstants.vb file credentials will be used to make the API call.
The lower left frame contains a list of links to pages that illustrate the use of each method in the API. When you click a link, it’s corresponding page is displayed in the right hand side frame. You may test the functions by putting in the call parameters in the page.
Step 5. Understanding Errors
Make sure you have read the General API Integration Instructions to obtain links to the error format and possible error documents. Reference: General API Integration Instructions >>
Step 6. Writing your own code
The API classes exist within the namespace OrderBoxCoreLib , OrderBoxDomainsLib, OrderBoxHostingLib, OrderBoxOtherProductsLib. The class named “Properties”, contains static variables useful for debugging, and changing the SOAP End Point.
The following are valid end points for the OrderBox Demo Server:
HTTP DEMO SERVICE URL: “http://api.onlyfordemo.net/anacreon/servlet/APIv3-XML”
HTTPS DEMO SERVICE URL: “https://api.onlyfordemo.net/anacreon/servlet/APIv3-XML”
The following are valid end points for the OrderBox Live Server:
HTTP LIVE SERVICE URL: “http://www.myorderbox.com/anacreon/servlet/APIv3-XML”
HTTPS LIVE SERVICE URL: “https://www.myorderbox.com/anacreon/servlet/APIv3-XML”
Example: To test the examples, you must first create an account on the Demo server. To use the Customer webservices of the OrderBox API, instantiate the customer object as demonstrated below. If at any time the SOAP end point must be changed to some other url, you may simply put the new SOAP end point into this variable.
Properties.Url = “http://soap-end-point”;
The following code instantiates the Customer object. You may now use it’s methods to call various OrderBox API functions. These are SOAP calls, that will be made to the SOAP End Point specified by the Propeties.Url variable.
Customer oCustomer = new Customer ();
To illustrate the use of this object, we shall take the example of a method called getCustomerId. Examine the code snippet below. It uses an object of the Customer class to request the id of a specified username.
|
int result = 0; // First we make sure that our SOAP End Point is pointing to the correct resource. // The examples use a class called Constants, containing static properties that hold your credentials. You may set these properties once, and later in the file simply pass them to the method calls as required. The values set below are simply examples, and must be replaced with your own credentials. // Since we wish to view the soap request and response … // Next we instantiate an object of the Customer class. // We then use this customer object to request the id for a specified username. // Now we display the soap request. // Then we display the soap response. // Lastly we display the result. |
The above code accepts authentication details and a username, and returns an integer value, which is the id corresponding to the username passed. The last parameter of the getCustomerId method is the username for which we requested an id. This id was returned into the integer variable result.
Please note the first five parameters of this method call. They consist of the username, password, role, language preference, and parent id respectively, of the individual calling the method. For the examples, you may make a demo account on the demo server, and pass the username, password, role, language preference and parent id from your demo account to this method call. These are the first five parameters that are passed to every API call that is undertaken. Please make sure that you pass accurate details for these parameters. If you do not, your method call will be unsuccessful.
In registering/managing any domain name on the demo server always use ns1.onlyfordemo.net and ns2.onlyfordemo.net as your nameservers. ANY OTHER Nameserver will result in an INVALID NAMESERVER error.
Step 7. Change the information to Live information when you are ready
When you have got the examples working correctly, you may set the value of Properties.Url to one of the live URL’s, and pass your own authentication details when making API calls.
Tags: 10 Zip, administrator, Administrator Privileges, Api, Api Documentation, Api Guide, Api Kit, ASP.NET, Computer Option, Demo Server, Docs, Explanations, http, installation of IIS, Integration Guide, Internet Information, Internet Information Services, Javadocs, Names, Net Hosting, Option 1, Party Provider, Platforms, Properties, Reference, Setup Application, Step 1, Step 2, Third Party, Two Ways, Visual Studio.Net, www.myorderbox.com/anacreon/servlet/APIv3-XML, Xml, Zip File, Zip Net
This document describes the Validation routines which you need to build in for the various parameters which you send to the API call. Failure to validate these fields on your side may result in an undecipherable error from the Server.
General Guidelines
Any fields which are optional will require either NULL or “” to be passed to them if they are of type String, or “0″ passed to them if they are of type Numeric. The type of a parameter can be checked in the documentation supplied alongwith the kit. So for instance if you choose NOT to pass a FAX Number you will have to pass “NULL” or “” for that parameter.
Specific Parameters and their Validation
username:
role:
name:
company:
While creating a Contact, each Name and Company Name combination should be unique.
address:
langPref:
password:
city:
country:
zip:
telnocc:
telno:
alttelnocc (optional):
alttelno (optional):
faxnocc (optional):
faxtelno (optional):
Tags: Api, Arabic, Bg, C Ompany, Cou, Data Validation, E Mail Address, English Ar, Failure, Fax Number, Fi, Hebrew, Iw, Letter Iso Code, Maximum Length, Parameters, Portuguese, Reseller Name, Ru, Type String, United States Of America, Validation Routines
Ensure that you have read the following documents before Emulating any API call:
You may emulate any API call without actually installing any of the API Kits, on our server itself by following the below mentioned process:
1. Login into your Reseller Control Panel from http://manage.gossimer.biz/reseller
2. Click on the relevant Kit mentioned within Settings -> API -> Emulate API Calls
3. Fill in the relevant details in the top-frame by referring to the below mentioned link -
Read This FIRST – General API Integration Instructions
Note – If you wish to view the XML Sent and Received at the client-side, choose to print the XML Sent/Received. This will enable you to view the simulation of the XML sent by your server to our server and our server’s response thereof.
4. Select the API Method that you chose to Debug previously in the left frame and enter the relevant details in the right frame and emulate the API Call.
5. If you chose to print the XML Sent/Received previously, you will be able to view it in the right frame (after you make an API call). You may wish to save this for debugging later on.
Tags: Api, Api Examples, Data Validation, Description Data, Format Description, Integration, Left Frame, Parameters, Relevant Details, Reseller Control Panel, Server Error, Simulation, Top Frame, Xml
Changes in version 3.10
Java Docs updated
Changes related to classes and methods:
New Classes and Methods
| Domains Kit | |
| New Class Name | New Method |
| ThirdLevelDotUk | String invoiceOption |
| ThirdLevelDotUk | String existingEndTime |
New Parameters introduced in Existing Methods
| Other Products Kit | ||
| Class Name | Method Name | New Parameters |
| EngageOrder | renew | String invoiceOption |
| EngageOrder | renew | String existingEndTime |
Deprecated Parameters in Methods
| Domains Kit | ||
| Class Name | Method Name | Deprecated Parameters |
| ZoneOrder | add | “No Of Records” in DomainHash |
Deprecated Methods
| Domains Kit | |||
| Class Name | Deprecated Method | Suggested Class | Suggested Method |
| DomContact | addDefaultContact | DomContact | addDefaultContacts |
| DomContact | add | DomContact | addContact |
| DomContact | list | DomContact | listByType |
| DomContactExt | isValidRegistrantContact | DomContactExt | isValidContact |
| DomOrder | transferDomain | DomOrder | addTransferDomain |
| DomOrder | add | DomOrder | registerDomain |
| ZoneOrder | mod | ZoneOrder | Functionality not required anymore |
| DotEu | tradeDomain | DotEu | trade |
| DotEu | transferDomain | DotEu | transfer |
| DotEu | add | DomOrder | registerDomain |
| Core Kit | |||
| Class Name | Deprecated Method | Suggested Class | Suggested Method |
| Customer | addCustomer | Customer | signUp |
| Customer | modDetails | Customer | mod |
| Reseller | addReseller | Reseller | signUp |
| Reseller | modDetails | Reseller | mod |
| Reseller | addResellerWithStateId | Reseller | Functionality not required anymore |
| OrderSetup | getResellerSlabPercentageForProducts | OrderSetup | Functionality not required anymore |
| OrderSetup | getCustomerSlabPercentage | OrderSetup | Functionality not required anymore |
Changes in version 3.9
Changes related to classes and methods:
The following method in the Domains Kit is deprecated and its use should be discontinued -
Deprecated method Class New method to be used isValidRegistrantContact DomContactExt isValidContact
Changes in version 3.8
Java Docs updated
Changes related to classes and methods:
The following changes have been introduced under the DotEu class within the Domains Kit -
The following new methods have been introduced under DigitalCertificateOrder class within the Other Products Kit -
Changes in version 3.7
Java Docs updated
Changes related to classes and methods:
Some old parameters have been removed and new parameters introduced in their place under the following methods -
| LinuxHostingOrder Class | ||
| Method | Old Parameter | New Parameters |
| add | Hashtable orderParams | String packageKey*, boolean ssl# |
| mod | Hashtable orderParams | String packagekey*, boolean ssl#, int excessBandwidth## |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| getModPricing | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| WindowsHostingOrder Class | ||
| Method | Old Parameter | New Parameters |
| add | Hashtable orderParams | String packageKey*, boolean ssl# |
| mod | Hashtable orderParams | String packagekey*, boolean ssl#, int excessBandwidth## |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| getModPricing | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| MailHostingOrder Class | ||
| Method | Old Parameter | New Parameters |
| add | Hashtable orderParams | String packageKey* |
| mod | Hashtable orderHash | String packagekey*, int additionalMailBoxes** |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey*, int additionalMailBoxes** |
| getModPricing | Hashtable orderParams | String packageKey*, int additionalMailBoxes** |
| SiteBuilder Class | ||
| Method | Old Parameter | New Parameters |
| mod | Hashtable orderParams | String packageKey* |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey* |
NOTE:* packageKey will be the Identifier Key of the Plan (plan1, plan2, plan3, plan4) for which the Order needs to be added/modified.
# ssl will be true or false depending whether the user wants Dedicated IP / SSL for the Order placed.
## excessBandwidth is the Bandwidth which the user wants over and above the Bandwidth of the Order’s current plan.
** additionalMailBoxes is the number of additional mail boxes over and above the existing ones in blocks of 100 accounts.
Changes in version 3.6
Java Docs updated
Changes related to classes and methods:
getProductMetadata – Product class
getDefaultContactId – DomContactExt class
listByType – DomContact class
addTransferDomain – DomOrder class
changePrivacyProtectionStatus – DomOrder class
registerDomain – DomOrder class
| Deprecated method | Class | New method to be used |
| add | DomContact | addContact |
| addDefaultContact | DomContact | addDefaultContacts |
| list | DomContact | listByType |
| add | DomOrder | registerDomain |
| transferDomain | DomOrder | addTransferDomain |
| transferDomainWithoutValidation | DomOrder | addTransferDomain |
| addTransferDomainWithoutvalidation | DomOrder | addTransferDomain |
| add | DotEu | registerDomain in DomOrder class |
While these methods are currently available, they are no longer supported and may be discontinued in the near future.
getHostingMetaData – WebHostingOrderData class
The invoiceOption parameter has been added to the add method of MailHostingPlanOnlyOrder, WindowsHostingPlanOnlyOrder and LinuxHostingPlanOnlyOrder classes
Changes in version 3.5
Java Docs updated
Changes related to classes and functions:
getList – Country class
getStateListForCountry – Country class
getDetails – Order class
addResellerWithStateId – Reseller class
getRegistrantAgreement
getProductCategory
getAgreement
getAllAgreements
addCoopContact – DotCoopContact class
validateDomainRegistrationParams
validateDomainTransferParams
addWithoutValidation
Changes in version 3.4
COM visible interfaces have been added for those who use ASP or VB, so that they are also able to use our DLLs.
Java Docs Updated
New Classes introduced in all Kits:
Core Kit
TaxService
getApplicableTaxes
getHashedTaxRules
Domains Kit
DotEu
getEUCountryList
tradeDomain
transferDomain
add
isEUCountry
DotEuContact
mod
add
addEuDefaultContact
DomOrder
validateDomainRegistrationParams
validateDomainTransferParams
addTransferDomainWithoutvalidation
addWithoutValidation
Hosting Kit
WindowsHostingPlanOnlyOrder
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
LinuxHostingPlanOnlyOrder
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
MailHostingPlanOnlyOrder
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
list
MailHostingSetup
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
WindowsHostingSetup
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
LinuxHostingSetup
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
Other Products Kit
DigitalCertificateOrder
add
getCertPrice
SiteBuilderSetup
getPricingKeyPricingParamMap
EngageSetup
getPricingKeyPricingParamMap
Changes in version 3.3
All the DLLs have been modified to allow partially trusted callers to use it.
3 new functions have been added in the Core Kit under the following classes:
authenticateCustomerId – Customer class
login – Customer class
getOrderIdByDomainAndProductCategory – Order class
Bug Fix – A minor Java Script problem was causing the frame links in the examples to not work in some browsers like Mozilla and Opera.
Changes in version 3.2
New methods added viz. Order.removeCustomerLock, Order.getLockList
The testing form provided now has a third frame which accepts the standard parameters passed in every call. If you set these parameters from the form, you can make test calls independent of the settings in the properties/constants file.
We’ve added ‘Strong Names’ to the kit.
Version 3.0 Released
Extensive changes made. Please download the kit and read the appropriate Javadocs for details.
Changes in version 2.6
Added the method Customer.delete() which allows you to delete a Customer
Added the method DomOrder.cancelTransferRequest() which allows you to cancel the transfer-in request for a domain name
Added the method Order.sendRfa() which allows you to re/send the email asking for transfer-in approval for domain names.
Changes in version 2.5.3
Bug fix: DomainContact.delete() used to throw an “Invalid Cast from string”” exception due to an incorrectly coded return type. This has been fixed.
Changes in version 2.5.2
Bug fix: It is now possible to view the XML sent and received.
Changes in version 2.5.1
Bug fix: The Setup.ini file was missing
Changes in version 2.5
Bug fix in Modify Customer Details and Modify Contact Details forms
More details in the Javadocs for DomOrder.getDetails()
Link to new Demo Server added.
Move Service functionality added in API
Add Funds functionality for both Sub-Resellers and Customers also added.
Domain Forwarding, Mail Forwarding, Managed DNS Products now available through the API.
Changes in version 1.5
Timeouts in the .NET API Kit when making some method calls are fixed.
The .NET API Kit is now strongly named.
Changes in version 1.4
Hashtable being passed by the Examples kit, to the domainHash parameter of the renewDomain method, in the Domain class, is now in the correct format.
Changes in version 1.2
Modified the default soap end point. It now points to the demo server.
Fixed Api Kit dll linkages in the Examples solution.
Tags: Api, ASP, Core Kit, Customer Signup, Demo Server, Deprecated Methods, DNS, Java, Java Docs, Kit Class, Parameters, Registerdomain, SSL, Xml
Buying Process for a single Domain Name
IMPORTANT
Modifying Domain Name Details
Reference: Domain Name Registration & Management >>
There is no single DomOrder.mod() method. Rather, you must call the relevant method to modify the appropriate property of a domain name. For example, to modify the Domain Secret, call DomOrder.modifyDomainSecret() and so on.
Modifying Domain Contact Details
Reference: Modifying the Whois / Contact Details of a Domain Name >>
There is a bit of a niggle when modifying the contacts to be used by a domain name. One can first get the contact ids for a particular domain by calling DomOrder.getDetails() with the orderid and ContactIds in the options Vector. We can then DomContact.listNames() to get a list of all contacts belonging to a particular Customer and show this in a list on the screen. We can then use DomOrder.modifyContact() to modify the contacts being used.
If the Customer chooses to modify the Registrant contact, then we should check if it is fit to be used in such a manner by calling DomContactExt.isValidRegistrantContact(). Some registries like .US and .COOP require additional information and this can be supplied to the contact with a call to DomContactExt.setContactDetails() if DomContactExt.isValidRegistrantContact() returns false.
If an attempt is made to use an incorrect contact id (one which would fail the DomContactExt.isValidRegistrantContact() test), then a InsufficientContactDataException is thrown. You can catch it and then set the details using DomContactExt.setContactDetails().
IMPORTANT
The system allows you to create an infinite number of Resellers and Sub-Resellers, each with customers under them. Orders can be placed only on behalf of the Customers and cannot be owned by Resellers or their Sub-Resellers directly. You can create as many Customers as you wish.
Reference: Videos describing the relationship between Customers and Sub-Resellers >>
Tags: Api, Buy Domain, Contact, Contacts, Coop, Correctness, Customer Id, Customer Selection, Discover, Domain Availability, Domain Name, Domain Names, Domain Registry, DomOrder.checkAvailabilityMultiple, First call, Ids, Name Servers, Nexus, Parameters, Register Domain, Register Domains, Registration Info, The
Tags: Acceptable Usage Policy, Api, Ip Address, Orderbox, Servers, Simultaneous Connections
The API is exposed using SOAP, a common web services protocol. SOAP is extremely simple to use and debug since it is an XML based protocol. While SOAP is a standardized protocol, we are using certain complex data types which are not completely compatible across all platforms. However we have written our own wrappers to handle this and we offer direct integration kits in various platforms which you can directly download and use.
When our System receives a request, it tries to complete the action immediately. If the System is unable to complete the action for some reason, it will return an error response and try to complete the action again after sometime. This ensures a high level of fault tolerance.
Due to this, it is imperative that when you encounter an error response (especially for commands that have financial implications like Registering or Renewing orders), you MUST check whether the command eventually failed or succeeded. To do this, you will have to issue additional API commands (depending on the command for which you received an error response) to check the final status of the original command.
It is recommended that you implement this querying process to check the status of API commands as a scheduled task/cron/batch process. Alternately, you can also check the status of the command by logging into your Reseller Control Panel.
Currently integration kits are available in PHP, Java, Perl and .NET. Our Server exposes all relevant methods using SOAP. SOAP is a simple XML-HTTP based protocol whose client implementations are available in EVERY language. Follow the steps below to begin making calls to the API -
Step 1. Sign up for a Demo Reseller Account
You will initially test your API scripts on our demo Server. Click here to read how to sign up for a demo Reseller account >> .
You will need the following items before you proceed to the next step
Your Signup Username
Your Signup Password
Your Parent ID
The first two items would have been entered by you during the signup. For the last item simply login to your Demo Account and click on Settings -> Personal Information -> Primary Profile.
You can use these accounts to try out various aspects of the system. However, the demo accounts are reset every day. As such, any additional orders placed herein, or any modification done to these accounts, shall cease to exist after 24 hours.
Step 2. Proceed to the corresponding API kit for your platform
Click on the links below to refer to further instructions for the platform you are developing on -
Java API Kit >>
PHP API Kit >>
.NET API Kit >>
Perl API Kit >>
Step 3. Download the API Documentation
The complete documentation of all classes and methods available in the API can be found in the Docs below. The Docs below are javadocs, but the function names and explanations remain the same for all the platforms and the documentation is self explanatory. We recommend you download the docs and read through them completely once before you integrate your application:
Core Docs v3_10
Domains Docs v3_10
Hosting Docs v3_10
Other Products Docs v3_10
Step 4. Refer to the Parameter Validation details of different parameters passed in any API Calls
We have a detailed document on the Validation routines which you need to build in for the various parameters which you send to the API call. Failure to validate these fields on your side may result in an undecipherable error from the Server. Click here to read about Data Validation of Parameters passed in an API Method Call >>
Step 5. Refer to the Error format document and the common errors
The first time you run any example you are likely to encounter errors if you have not followed the steps perfectly. It is important to understand the format of an error. Click here to understand the format of an error that you will receive >>
Sometimes, you may receive a 302 HTTP Redirect response from our System. Your API implementation should be capable of following such a redirect.
Step 6. Run the examples
All the above kits contain examples which you can run and test the API functionality. Try these examples out to verify everything is working fine. You should first run these examples on the Demo Server. Use the demo sign up information gathered above and the Demo Server URL below to run the examples on the demo server.
Demo Server URLs for API Kits ver 3.x and above
Java and PHP API Kits
http://api.onlyfordemo.net/anacreon/servlet/APIv3
https://www.foundationapi.com/anacreon/servlet/APIv3
Perl and .NET API Kit
http://api.onlyfordemo.net/anacreon/servlet/APIv3-XML
https://api.onlyfordemo.net/anacreon/servlet/APIv3-XML
Demo Server URLs for older API Kits
Java and PHP API Kits
http://demo.myorderbox.com/anacreon/servlet/rpcrouter
https://demo.myorderbox.com/anacreon/servlet/rpcrouter
.NET and Perl API Kits
http://demo.myorderbox.com/anacreon/servlet/XMLrpcrouter
https://demo.myorderbox.com/anacreon/servlet/XMLrpcrouter
Step 7. Refer to common errors
In this documentation we have some answers covering common errors you can expect while integrating with the API. Click here to know details about common API errors >>
Step 8. Change the information to Live information when you are ready
Once you have followed the steps above and got the test programs to work successfully, you can duplicate the same code in your live application and replace the Demo Server and Reseller account information with your live username and password. You will also need to change the server URL to the live server URL.
LIVE Server URLs for API Kits ver 3.x and above
Java and PHP API Kits
http://www.myorderbox.com/anacreon/servlet/APIv3
https://www.myorderbox.com/anacreon/servlet/APIv3
Perl and .NET API Kit
http://www.myorderbox.com/anacreon/servlet/APIv3-XML
https://www.myorderbox.com/anacreon/servlet/APIv3-XML
LIVE Server URLs for older API Kits
Java and PHP API Kits
http://www.myorderbox.com/anacreon/servlet/rpcrouter
https://www.myorderbox.com/anacreon/servlet/rpcrouter
.NET and Perl API Kits
http://www.myorderbox.com/anacreon/servlet/XMLrpcrouter
https://www.myorderbox.com/anacreon/servlet/XMLrpcrouter
Refer to the corresponding kit and integration guide of the platform that you choose for further instructions.
As you duplicate your code on the live application environment, remember to change your Parent ID to the one associated with your Live Reseller account. You can find this from Settings -> Personal Information -> Primary Profile in your Reseller Control Panel.
You need to display the Registrar Registrant Agreement for Domain Names Legal document within the domain name registration buy process on your website.
It is compulsory to display this document AS IS to your Customers and get them to agree to the terms mentioned therein, before buying domain names through you. You can view this agreement from within your Reseller Admin Control Panel at Help >> Legal Agreements.
Tags: Api, Api Commands, Data Types, Demo Server, Exposed, Fault Tolerance, Financial Implications, http, Integration, Java, Java Perl, Net Server, Parent, Parent Id, Perl, Php, Platforms, Protocol, Registrar, Relevant Methods, Reseller Account, Reseller Control Panel, Soap Soap, standardized protocol, Test Scripts, web services protocol, www.foundationapi.com/anacreon/servlet/APIv3, www.myorderbox.com/anacreon/servlet/APIv3, www.myorderbox.com/anacreon/servlet/APIv3-XML, www.myorderbox.com/anacreon/servlet/rpcrouter, www.myorderbox.com/anacreon/servlet/XMLrpcrouter, Xml
Domains Kit
| Product Name | Product Key |
| .COM Domain Name | domcno |
| .NET Domain Name | dotnet |
| .ORG Domain Name | domorg |
| .BIZ Domain Name | dombiz |
| .INFO Domain Name | dominfo |
| .NAME Domain Name | dotname |
| .US Domain Name | domus |
| .IN Domain Name (2nd Level) | dotin |
| .IN Domain Name (3rd Level) | thirdleveldotin |
| .COOP Domain Name | dotcoop |
| .EU Domain Name | doteu |
| .MOBI Domain Name | dotmobi |
| .BZ Domain Name | dotbz |
| .MN Domain Name | dotmn |
| .CC Domain Name | dotcc |
| .TV Domain Name | dottv |
| .UK Domain Name | thirdleveldotuk |
| .WS Domain Name | dotws |
| CentralNicPremium | centralnicpremium |
| CentralNicstandard | centralnicstandard |
| Product Name | Product Key |
| Domain Forward Service | domainfwd |
| Mail Forward Service | mailfwd |
| Managed DNS | dnsbox |
<#start hosting#>Hosting Kit
1. The old Product Keys (mentioned below) have been deprecated and management of old Orders needs to be done using the new Product Keys:
Old Product Keys
| Product Name | Product Key |
| Linux Budget Web Hosting | lhbbudgetusa, lhbbudgetplanus |
| Linux Premium Web Hosting | lhbpremiumusa |
| Windows Budget Web Hosting | w2kbudgetusa, w2kbudgetplanus |
| Windows Premium Web Hosting | w2kpremiumusa |
| Budget Mail Hosting | mailboxbudgetusa, mailboxbudgetplanus |
| Premium Mail Hosting | mailboxpremiumusa |
2. All existing Web AND Email Hosting Orders have been split into 2 Orders – Web Hosting and Email Hosting (using the new Product Keys).
3. All existing ONLY Web Hosting and ONLY Email Hosting Orders, are now manageable using the new Product Keys.
| Product Name | Product Key |
| Linux Web Hosting [USA] | lhbus |
| Linux Web Hosting [INDIA] | lhbin |
| Windows Web Hosting [USA] | w2kus |
| Windows Web Hosting [INDIA] | w2kin |
| Email Hosting | mailboxus |
Tags: Biz Domain Name, Budget Hosting, Budget Web, Cc Domain Name, Coop Domain Name, DNS, Domain Forward Service, Domains, Domus, Email Hosting, European Union, Forward Mail, Forward Service, India, Linux, Linux Hosting, Linux Web, Lt, Mail, Mail Forward, Mail Hosting, Mail Service, Microsoft Windows, Name Domain, Product Key, Product Keys, Tv Domain Name, Uk Domain Name, United States, Web AND Email Hosting Orders, Web Hosting, Web Mail
Follow the instructions below to begin integration with the API using PHP -
Make sure you have read the General API Integration Instructions first. If you have already integrated the PHP API Kit at your end, read the Change Log first to know what has changed since.
Reference:
General API Integration Instructions >>
Change Log >>
The PHP API Kit is not compatible with version PHP5. You need to use version PHP4 in order to integrate the API Kit at your end.
Step 1. Download the API Kit
Click the link below to download the relevant API kits (updated on 6th March, 2008).
PHP_CoreKIT_v3_10.zip
PHP_DomainsKIT_v3_10.zip
PHP_HostingKIT_v3_10.zip
PHP_OtherProductsKIT_v3_10.zip
Step 2. Download the API Documentation
The complete documentation of all classes and methods available in the API can be found in the Docs below. The Docs below are javadocs, but the function names and explanations remain the same for all the platforms and the documentation is self explanatory. We recommend you download the docs and read through them completely once before you integrate your application (updated on 6th March, 2008).
Core_Docs_v3_10.zip
Domains_Docs_v3_10.zip (updated on 1st April, 2008)
Hosting_Docs_v3_10.zip
OtherProducts_Docs_v3_10.zip
Since “list” is a keyword in the PHP language, the “list()” methods in the various classes (in the PHP Kit) has been renamed to “listOrder().” However, the documentation still mentions the method name as “list” since the documentation is JAVA specific.
Instructions to pass parameters to functions using the PHP Kit
Since PHP uses typeless variables you will have to ignore the datatypes presented in the docs. But for assigning values to variable of types other than strings and integers special care will have to be taken. Below is the list of datatypes presented in the API Doc and their usage in PHP.
|
Java Data |
Types Assigning values in PHP |
| String | “firstname@secondname.com” |
| int | 123 |
| HashMap (Datatype for storing name-value pair) | array(“domain.com”=>”1″) |
| Array and Vector (Datatype for storing more than one value) | array(“ns1.domain.com”,”ns2.domain.com”) |
| boolean (Datatype for storing true or false) | true / false |
Example:
For Calling a Function which takes a String datatype and an integer datatype as its paramters
public int function1(java.lang.String userName, int parentid)
$result = $obj->function1(“firstname@secondname.com”,1);
For Calling a Function which takes a HashMap, a String Array and an integer Array as its parameters
public java.util.HashMap function2(java.util.HashMap domainHash, java.lang.String[] orderby, int[] resellerId)
and domainHash is accepting the domainname and the number of years as name value pair
$result = $obj->function2(array(“domain1.com”=>1,”domain2.com”=>2),array(“column1″,”column2″),array(22,33))
For Calling a Function which takes a Vector and a boolean as its parameters
public java.lang.String function3(java.util.Vector nameServers, boolean add)
$result = $obj->function3(array(“ns1.domain.com”,”ns2.domain.com”),true)
Step 3. Extract the files from the API Kit archive
You should get the following directory & files structure
examples/ – Pre-written examples. You can directly run these examples to test API functionality
lib/ – The PHP class files, library files and wsdl files that you need to run your application
Step 4. Run the examples
You can run the pre-written examples provided in the “examples” folder. Note the following steps to do so -
1. Upload the “examples” and “lib” folders to your web server where you run your PHP scripts. Make sure that both these folders are uploaded to the same parent folder.
2. You must have PHP 4 installed on the server
3. You must have a Demo account ready the first time. Read the General instructions if you have not yet setup your demo account. Reference: General API Integration Instructions >>
The Demo server duplicates all functionality of the live server, however all Domain Names will appear as available on the Demo Server. It does not query the live registry and therefore names which are not available on the live registry will still appear as available on the Demo Server. At times connectivity to the DEMO Registry may be down resulting in errors.
4. Make the appropriate changes to “constants.php” in the “examples” folder, by putting in the values for your “SERVICE_USERNAME”, “SERVICE_PASSWORD”, “SERVICE_PARENTID”. The remaining settings have already been made for you in this file. You may only need to change the path for the “lib” folder if you have uploaded the lib folder elsewhere
5. The URL to which the call is made is maintained in the “config.php” file inside the “lib” folder. By default all calls are made to the demo server URL using HTTP. You can make changes to this file and redirect your calls to the appropriate server
If you are using HTTPS calls you MUST have the extension for CURL installed and enabled in your PHP installation.
6. Another important parameter maintained in the “config.php” file is the variable $DEBUG. If this variable is set to “true”, then for each call you will see the entire XML Request and Response in the output. You should keep it to “true” during testing, but set it to false on the live environment.
7. Every Example file has a set of functions which you can run.
8. Once you have modified the appropriate example file, access it over your webserver by putting in your URL such as http://yourserver/examples/html and choose the required function from the links given in the left frame.
In registering/managing any domain name on the demo server always use ns1.onlyfordemo.net and ns2.onlyfordemo.net as your nameservers. ANY OTHER Nameserver will result in an INVALID NAMESERVER error.
Step 5. Understanding Errors
Make sure you have read the General API Integration Instructions to obtain links to the error format and possible error documents. Reference: General API Integration Instructions >>
Step 6. Writing your own code
After running each example above, if you simply refer to the corresponding .php file in the examples folder you will easily be able to figure out the code snippet you need to write in order to make a similar call.
Making an API call to perform any action is a matter of three steps:
(i) Include the appropriate PHP Class file as below
include($LIB_DIR.”Order.class.php”);
(ii) Obtain a pointer to the required Class. This is done by using the code below
$serviceObj = new Order($LIB_DIR . “wsdl/Order.wsdl”);
(iii) Call the required method on this object. A complete reference of all methods is available in the Docs folder. This can be achieved by using the code below
$AssociativeArray = $serviceObj->setCustomerLock($SERVICE_USERNAME, $SERVICE_PASSWORD, $SERVICE_ROLE, $SERVICE_LANGPREF, $SERVICE_PARENTID, $orderId);
You will notice above that EVERY method in the docs takes the same first 5 parameters as below
String SERVICE_USERNAME, String SERVICE_PASSWORD, String SERVICE_ROLE, String SERVICE_LANGPREF, int SERVICE_PARENTID
In the examples these parameters have been put into a single constants file from which they are accessed by including the constants file. These parameters are common no matter which method you call. These parameters mean the following:
String SERVICE_USERNAME: Your UsernameSERVICE_PASSWORD
String : Your PasswordSERVICE_ROLE
String : This will always be a string "reseller"SERVICE_LANGPREF
String : The 2 letter code of the language in which you wish to receive errors and descriptions - "en" for EnglishSERVICE_PARENTID
int : The ID of your parent which you can get from your profile section
Remember, when passing numerical data in hashtables, please ensure that the number is passed as a String.
Step 7. Change the information to Live information when you are ready
Once you have followed the steps above and got the test examples to work successfully, you can duplicate the same code in your live application and replace the Demo Server and Reseller account information with your live username and password. The URL that you make your calls to also needs to change to the LIVE Server URL. You will make this change in the “config.php” file in the “lib” folder
Once again note, if you are using the HTTPS URL you MUST have the extension for CURL installed and enabled in your PHP installation.
Tags: Api, Api Documentation, Api Guide, Api Kit, appropriate server, Datatype, Datatypes, Demo Server, Docs, Explanations, http, Integers, Integration Guide, Java, Java Data Types, Javadocs, Parameters, Php, Php Guide, PHP installation, Php Java, Php Kit, Php Language, Php4, Platforms, Reference, Step 1, Step 2, Variables, Web Server, Xml
Changes in version 3.10
Java Docs updated
Changes related to classes and methods:
New Classes and Methods
| Domains Kit | |
| New Class Name | New Method |
| ThirdLevelDotUk | String invoiceOption |
| ThirdLevelDotUk | String existingEndTime |
New Parameters introduced in Existing Methods
| Other Products Kit | ||
| Class Name | Method Name | New Parameters |
| EngageOrder | renew | String invoiceOption |
| EngageOrder | renew | String existingEndTime |
Deprecated Parameters in Methods
| Domains Kit | ||
| Class Name | Method Name | Deprecated Parameters |
| ZoneOrder | add | “No Of Records” in DomainHash |
Deprecated Methods
| Domains Kit | |||
| Class Name | Deprecated Method | Suggested Class | Suggested Method |
| DomContact | addDefaultContact | DomContact | addDefaultContacts |
| DomContact | add | DomContact | addContact |
| DomContact | list | DomContact | listByType |
| DomContactExt | isValidRegistrantContact | DomContactExt | isValidContact |
| DomOrder | transferDomain | DomOrder | addTransferDomain |
| DomOrder | add | DomOrder | registerDomain |
| ZoneOrder | mod | ZoneOrder | Functionality not required anymore |
| DotEu | tradeDomain | DotEu | trade |
| DotEu | transferDomain | DotEu | transfer |
| DotEu | add | DomOrder | registerDomain |
| Core Kit | |||
| Class Name | Deprecated Method | Suggested Class | Suggested Method |
| Customer | addCustomer | Customer | signUp |
| Customer | modDetails | Customer | mod |
| Reseller | addReseller | Reseller | signUp |
| Reseller | modDetails | Reseller | mod |
| Reseller | addResellerWithStateId | Reseller | Functionality not required anymore |
| OrderSetup | getResellerSlabPercentageForProducts | OrderSetup | Functionality not required anymore |
| OrderSetup | getCustomerSlabPercentage | OrderSetup | Functionality not required anymore |
Changes in version 3.9
Changes related to classes and methods:
The following method in the Domains Kit is deprecated and its use should be discontinued -
Deprecated method Class New method to be used isValidRegistrantContact DomContactExt isValidContact
Changes in version 3.8
Java Docs updated
Changes related to classes and methods:
The following changes have been introduced under the DotEu class within the Domains Kit -
The following new methods have been introduced under DigitalCertificateOrder class within the Other Products Kit -
Changes in version 3.7
Java Docs updated
Changes related to classes and methods:
Some old parameters have been removed and new parameters introduced in their place under the following methods -
| LinuxHostingOrder Class | ||
| Method | Old Parameter | New Parameters |
| add | Hashtable orderParams | String packageKey*, boolean ssl# |
| mod | Hashtable orderParams | String packagekey*, boolean ssl#, int excessBandwidth## |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| getModPricing | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| WindowsHostingOrder Class | ||
| Method | Old Parameter | New Parameters |
| add | Hashtable orderParams | String packageKey*, boolean ssl# |
| mod | Hashtable orderParams | String packagekey*, boolean ssl#, int excessBandwidth## |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| getModPricing | Hashtable orderParams | String packageKey*, boolean ssl#, int execessBandwidth## |
| MailHostingOrder Class | ||
| Method | Old Parameter | New Parameters |
| add | Hashtable orderParams | String packageKey* |
| mod | Hashtable orderHash | String packagekey*, int additionalMailBoxes** |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey*, int additionalMailBoxes** |
| getModPricing | Hashtable orderParams | String packageKey*, int additionalMailBoxes** |
| SiteBuilder Class | ||
| Method | Old Parameter | New Parameters |
| mod | Hashtable orderParams | String packageKey* |
| getMonthlyCostAndValidate | Hashtable orderParams | String packageKey* |
NOTE:* packageKey will be the Identifier Key of the Plan (plan1, plan2, plan3, plan4) for which the Order needs to be added/modified.
# ssl will be true or false depending whether the user wants Dedicated IP / SSL for the Order placed.
## excessBandwidth is the Bandwidth which the user wants over and above the Bandwidth of the Order’s current plan.
** additionalMailBoxes is the number of additional mail boxes over and above the existing ones in blocks of 100 accounts.
Changes in version 3.6
Java Docs updated
Changes related to classes and methods:
| Deprecated method | Class | New method to be used |
| add | DomContact | addContact |
| addDefaultContact | DomContact | addDefaultContacts |
| list | DomContact | listByType |
| add | DomOrder | registerDomain |
| transferDomain | DomOrder | addTransferDomain |
| transferDomainWithoutValidation | DomOrder | addTransferDomain |
| addTransferDomainWithoutvalidation | DomOrder | addTransferDomain |
| add | DotEu | registerDomain in DomOrder class |
While these methods are currently available, they are no longer supported and may be discontinued in the near future.
Changes in version 3.5
Java Docs updated
Changes related to classes and functions:
Changes in version 3.4
Java Docs Updated
New Classes introduced in all Kits:
Core Kit
TaxService
getApplicableTaxes
getHashedTaxRules
Domains Kit
DotEu
getEUCountryList
tradeDomain
transferDomain
add
isEUCountry
DotEuContact
mod
add
addEuDefaultContact
DomOrder
validateDomainRegistrationParams
validateDomainTransferParams
addTransferDomainWithoutvalidation
addWithoutValidation
Hosting Kit
WindowsHostingPlanOnlyOrder
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
LinuxHostingPlanOnlyOrder
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
MailHostingPlanOnlyOrder
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
list
MailHostingSetup
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
WindowsHostingSetup
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
LinuxHostingSetup
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
Other Products Kit
DigitalCertificateOrder
add
getCertPrice
SiteBuilderSetup
getPricingKeyPricingParamMap
EngageSetup
getPricingKeyPricingParamMap
Changes in version 3.3
3 new functions have been added in the Core Kit under the following classes:
authenticateCustomerId – Customer class
login – Customer class
getOrderIdByDomainAndProductCategory – Order class
The name of the jar file in every kit is now unique.
Bug Fix – A minor Java Script problem was causing the frame links in the examples to not work in some browsers like Mozilla and Opera.
Changes in version 3.2
New methods added viz. Order.removeCustomerLock, Order.getLockList
The testing form provided now has a third frame which accepts the standard parameters passed in every call. If you set these parameters from the form, you can make test calls independent of the settings in the properties/constants file.
Changes in version 3.1
Minor bugs in WSDL files fixed.
Version 3.0 Released
Extensive changes made. Please download the kit and read the appropriate Javadocs for details
Changes in version 2.6
Added the method Customer.delete() which allows you to delete a Customer
Added the method DomOrder.cancelTransferRequest() which allows you to cancel the transfer-in request for a domain name
Added the method Order.sendRfa() which allows you to re/send the email asking for transfer-in approval for domain names.
Changes in version 2.5
Bug fix in Modify Customer Details and Modify Contact Details forms
More details in the Javadocs for DomOrder.getDetails()
Link to new Demo Server added.
Changes in version 2.3
Move Website functionality added in API
Add Funds functionality for both Sub-Resellers and Customers also added
Domain Forwarding, Mail Forwarding, Managed DNS Products now available through the API.
Changes in version 2.2
In customer class new method (authenticateCustomer) is added to authenticate the Customer.
Changes in version 2.1
DomUsContact.class
API for DomUsContact.class is provided
The characteristics of DomUsContact.class includes the method setContactDetails() that needs to be called for any contact used as Registrant contact for .US. for providing applicationPurpose and nexusCategory facility.
list() method
list() method of DomContact.class is now available to Customer as well as Reseller.
The function signature of listContact() is also changed – One has to pass Customer Id after Parent Id besides other parameters.
getCustomerAvailableBalance() fuction
getCustomerAvailableBalance() fuction is added to the Fund.class
This function returns the available balance of a Customer.
getCustomerId() function
getCustomerId() function is added to the Customer.class
This function returns the customer id of the customer.
The prefix of all user classes changed to Customer eg. UserService to CustomerService, UserServiceTest to CustomerServiceTest
Method signature change in DomContact.class
OLD – int add(java.lang.String userName, java.lang.String password, java.lang.String role, java.lang.String langpref, int parentid, int customerId)
NEW – int addDefaultContact(java.lang.String userName, java.lang.String password, java.lang.String role, java.lang.String langpref, int parentid, int customerId)
Tags: Api, Core Kit, Customer Signup, Deprecated Methods, DNS, Java, Java Docs, Kit Class, New Domains, nexusCategory facility, Parameters, Registerdomain, Reseller, SSL
Buying Process for a Hosting Plan or Custom Package
Modifying a Hosting Plan or Custom Package
Reference: Renewing/Upgrading/Downgrading/Deleting a Web Hosting package >>
Deleting a Hosting Plan or Custom Package
Reference: Renewing/Upgrading/Downgrading/Deleting a Web Hosting package >>
Simply call del() under the appropriate HostingOrder class with the appropriate orderid.
Renewing a Hosting Plan or Custom Package
Reference: Renewing/Upgrading/Downgrading/Deleting a Web Hosting package >>
Simply call renew() under the appropriate HostingOrder class with the appropriate orderid and the months to renew for.
IMPORTANT
The system allows you to create an infinite number of Resellers and Sub-Resellers, each with customers under them. Orders can be placed only on behalf of the Customers and cannot be owned by Resellers or their Sub-Resellers directly. You can create as many Customers as you wish.
Click here to read about Customers and Sub-Resellers >>
Tags: Alternate Location, Api, Budget, Custom Package, First call, Hash, Hashes, Hosting Package, Hosting Plan, Hosting Plans, Important Information, Local Store, Plan Id, Product Key, Product Keys, Serial Number, Web Hosting package
Changes in version 3.10 Java Docs updated Changes related to classes and methods:
| Domains Kit | |
| New Class Name | New Method |
| ThirdLevelDotUk | String invoiceOption |
| ThirdLevelDotUk | String existingEndTime |
New Parameters introduced in Existing Methods
| Other Products Kit | ||
| Class Name | Method Name | New Parameters |
| EngageOrder | renew | String invoiceOption |
| EngageOrder | renew | String existingEndTime |
Deprecated Parameters in Methods
Domains Kit
Class Name
Method Name
Deprecated Parameters
ZoneOrder
add
"No Of Records" in DomainHash
Changes in version 3.9 Changes related to classes and methods: The following method in the Domains Kit is deprecated and its use should be discontinued - Changes in version 3.8 Java Docs updated Changes related to classes and methods: The following changes have been introduced under the DotEu class within the Domains Kit -
The following new methods have been introduced under DigitalCertificateOrder class within the Other Products Kit - Changes in version 3.7 Java Docs updated Changes related to classes and methods: Some old parameters have been removed and new parameters introduced in their place under the following methods -
* packageKey will be the Identifier Key of the Plan (plan1, plan2, plan3, plan4) for which the Order needs to be added/modified. # ssl will be true or false depending whether the user wants Dedicated IP / SSL for the Order placed. ## excessBandwidth is the Bandwidth which the user wants over and above the Bandwidth of the Order’s current plan.
Changes in version 3.6 Java Docs updated Changes related to classes and methods:
Domains Kit
Class Name
Deprecated Method
Suggested Class
Suggested Method
DomContact
addDefaultContact
DomContact
addDefaultContacts
DomContact
add
DomContact
addContact
DomContact
list
DomContact
listByType
DomContactExt
isValidRegistrantContact
DomContactExt
isValidContact
DomOrder
transferDomain
DomOrder
addTransferDomain
DomOrder
add
DomOrder
registerDomain
ZoneOrder
mod
ZoneOrder
Functionality not required anymore
DotEu
tradeDomain
DotEu
trade
DotEu
transferDomain
DotEu
transfer
DotEu
add
DomOrder
registerDomain
Core Kit
Class Name
Deprecated Method
Suggested Class
Suggested Method
Customer
addCustomer
Customer
signUp
Customer
modDetails
Customer
mod
Reseller
addReseller
Reseller
signUp
Reseller
modDetails
Reseller
mod
Reseller
addResellerWithStateId
Reseller
Functionality not required anymore
OrderSetup
getResellerSlabPercentageForProducts
OrderSetup
Functionality not required anymore
OrderSetup
getCustomerSlabPercentage
OrderSetup
Functionality not required anymore
Deprecated method
Class
New method to be used
isValidRegistrantContact
DomContactExt
isValidContact
LinuxHostingOrder Class
Method
Old Parameter
New Parameters
add
Hashtable orderParams
String packageKey*, boolean ssl#
mod
Hashtable orderParams
String packagekey*, boolean ssl#,
int excessBandwidth##
getMonthlyCostAndValidate
Hashtable orderParams
String packageKey*, boolean ssl#,
int execessBandwidth##
getModPricing
Hashtable orderParams
String packageKey*, boolean ssl#,
int execessBandwidth##
WindowsHostingOrder Class
Method
Old Parameter
New Parameters
add
Hashtable orderParams
String packageKey*, boolean ssl#
mod
Hashtable orderParams
String packagekey*, boolean ssl#,
int excessBandwidth##
getMonthlyCostAndValidate
Hashtable orderParams
String packageKey*, boolean ssl#,
int execessBandwidth##
getModPricing
Hashtable orderParams
String packageKey*, boolean ssl#,
int execessBandwidth##
MailHostingOrder Class
Method
Old Parameter
New Parameters
add
Hashtable orderParams
String packageKey*
mod
Hashtable orderHash
String packagekey*, int additionalMailBoxes**
getMonthlyCostAndValidate
Hashtable orderParams
String packageKey*, int additionalMailBoxes**
getModPricing
Hashtable orderParams
String packageKey*, int additionalMailBoxes**
SiteBuilder Class
Method
Old Parameter
New Parameters
mod
Hashtable orderParams
String packageKey*
getMonthlyCostAndValidate
Hashtable orderParams
String packageKey*
** additionalMailBoxes is the number of additional mail boxes over and above the existing ones in blocks of 100 accounts.
getProductMetadata – Product class
getDefaultContactId – DomContactExt class
listByType – DomContact class
addTransferDomain – DomOrder class
changePrivacyProtectionStatus – DomOrder class
registerDomain – DomOrder class
| Deprecated method | Class | New method to be used |
| add | DomContact | addContact |
| addDefaultContact | DomContact | addDefaultContacts |
| list | DomContact | listByType |
| add | DomOrder | registerDomain |
| transferDomain | DomOrder | addTransferDomain |
| transferDomainWithoutValidation | DomOrder | addTransferDomain |
| addTransferDomainWithoutvalidation | DomOrder | addTransferDomain |
| add | DotEu | registerDomain in DomOrder class |
While these methods are currently available, they are no longer supported and may be discontinued in the near future.
getHostingMetaData – WebHostingOrderData class
The invoiceOption parameter has been added to the add method of MailHostingPlanOnlyOrder, WindowsHostingPlanOnlyOrder and LinuxHostingPlanOnlyOrder classes
Changes in version 3.5 Java Docs updated Changes related to classes and functions:
getList – Country class
getStateListForCountry – Country class
getDetails – Order class
addResellerWithStateId – Reseller class
getRegistrantAgreement
getProductCategory
getAgreement
getAllAgreements
addCoopContact – DotCoopContact class
validateDomainRegistrationParams
validateDomainTransferParams
addWithoutValidation
Changes in version 3.4 Java Docs Updated New Classes introduced in all Kits: Core Kit TaxService
Domains Kit DotEu DotEuContact DomOrder
Hosting Kit WindowsHostingPlanOnlyOrder LinuxHostingPlanOnlyOrder MailHostingPlanOnlyOrder MailHostingSetup WindowsHostingSetup LinuxHostingSetup
Other Products Kit DigitalCertificateOrder SiteBuilderSetup EngageSetup Changes in version 3.3 3 new functions have been added in the Core Kit under the following classes: authenticateCustomerId – Customer class Bug Fix – A minor Java Script problem was causing the frame links in the examples to not work in some browsers like Mozilla and Opera. Changes in version 3.2.1 WSDL Endpoint changed Changes in version 3.2 New methods added viz. Order.removeCustomerLock, Order.getLockList Changes in version 3.1 Minor bugs in WSDL files fixed.
getApplicableTaxes
getHashedTaxRules
getEUCountryList
tradeDomain
transferDomain
add
isEUCountry
mod
add
addEuDefaultContact
validateDomainRegistrationParams
validateDomainTransferParams
addTransferDomainWithoutvalidation
addWithoutValidation
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
getDetails
getDetailsByDomain
getOrderIdByDomain
add
mod
renew
del
getMonthlyCostAndValidate
getModPricing
getDeletionRefundAmount
list
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
getHostingKeyDisplayName
getHostingParamsDisplayName
getPricingKeyPricingParamMap
add
getCertPrice
getPricingKeyPricingParamMap
getPricingKeyPricingParamMap
login – Customer class
getOrderIdByDomainAndProductCategory – Order class
Extensive changes made. Please download the kit and read the appropriate Javadocs for details.
Added the method Customer.delete() which allows you to delete a Customer Added the method DomOrder.cancelTransferRequest() which allows you to cancel the transfer-in request for a domain name Added the method Order.sendRfa() which allows you to re/send the email asking for transfer-in approval for domain names.
Bug fix in Modify Customer Details and Modify Contact Details forms More details in the Javadocs for DomOrder.getDetails() Link to new Demo Server added.
Perl API KIT added
Follow the instructions below to begin integration with the API using Java -
Make sure you have read the General API Integration Instructions first. If you have already integrated the Java API Kit at your end, read the Change Log first to know what has changed since.
Reference:
General API Integration Instructions >>
Change Log >>
Step 1. Download the API Kit
Click the link below to download the relevant API kits (updated on 6th March, 2008).
JAVA_CoreKIT_v3_10.zip
JAVA_DomainsKIT_v3_10.zip
JAVA_HostingKIT_v3_10.zip
JAVA_OtherProductsKIT_v3_10.zip
Step 2. Download the API Documentation
The complete documentation of all classes and methods available in the API can be found in the Docs below. The Docs below are javadocs, but the function names and explanations remain the same for all the platforms and the documentation is self explanatory. We recommend you download the docs and read through them completely once before you integrate your application (updated on 6th March, 2008).
Core_Docs_v3_10.zip
Domains_Docs_v3_10.zip (updated on 1st April, 2008)
Hosting_Docs_v3_10.zip
OtherProducts_Docs_v3_10.zip
Step 3. Extract the files from the API Kit archive
You should get the following directory & files structure
WEB-INF/classes/ – Precompiled examples. You can directly run the examples to test API functionality
examples/src/ – The examples for using the API
WEB-INF/lib/ – The jar files that you will need in order to compile/run the classes
WEB-INF/build.xml – The API archive also contains a build.xml file. You can use this file to build the examples using Ant.
The Ant target to build the examples is build. If you do not want to use Ant, you can just compile the files in the “src” folder. You will need to include the jar files provided in the lib folder while compiling the classes.
Step 4. Run the examples
You can run the precompiled examples provided in the “classes” folder. Note the following however:
1. Upload the “classes” and “lib” folders to your server. Make sure that both these folders are uploaded to the same parent folder.
2. You must have a Demo account ready the first time. Read the General instructions if you have not yet setup your demo account. Reference: General API Integration Instructions >>
The Demo server duplicates all functionality of the live server, however all Domain Names will appear as available on the Demo Server. It does not query the live registry and therefore names which are not available on the live registry will still appear as available on the Demo Server. At times connectivity to the DEMO Registry may be down resulting in errors.
3. Make the appropriate changes to the “settings.properties” file in the “WEB-INFclassescomlogicboxesproperties” folder, by putting in the values for your “ResellerUsername”, “ResellerPassword” and “ParentId”. The remaining settings have already been made for you in this file.
4. The URL to which the call is made is maintained in the “settings.properties” file inside the “WEB-INFclassescomlogicboxesproperties” folder. By default, all calls are made to the demo server URL using HTTP. You can make changes to this file and redirect your calls to the appropriate server.
If you are using HTTPS calls you MUST have JDK 1.4 or greater installed. HTTPS calls will not work with JDK 1.3 or lower.
5. Set your class path to include the bin folder and EVERY jar file in the lib folder. You would use the following command for that
Windows
set CLASSPATH=%CLASSPATH%;
</fullPathTo>/classes;
</fullPathToLibFolder>/aaxerces-1_4_3.jar;
</fullPathToLibFolder>/axis.jar;
</fullPathToLibFolder>/commons-discovery.jar;
</fullPathToLibFolder>/commons-logging.jar;
</fullPathToLibFolder>/jaxrpc.jar;
</fullPathToLibFolder>/junit.jar;
</fullPathToLibFolder>/logicboxes-sfnb-v2.jar;
</fullPathToLibFolder>/saaj.jar;
</fullPathToLibFolder>/servlet.jar;
</fullPathToLibFolder>/wsdl4j.jar
Linux
set CLASSPATH=$CLASSPATH:
</fullPathTo>/classes:
</fullPathToLibFolder>/aaxerces-1_4_3.jar:
</fullPathToLibFolder>/axis.jar:
</fullPathToLibFolder>/commons-discovery.jar:
</fullPathToLibFolder>/commons-logging.jar:
</fullPathToLibFolder>/jaxrpc.jar:
</fullPathToLibFolder>/junit.jar:
</fullPathToLibFolder>/logicboxes-sfnb-v2.jar:
</fullPathToLibFolder>/saaj.jar:
</fullPathToLibFolder>/servlet.jar:
</fullPathToLibFolder>/wsdl4j.jar
6. Run the java program using the command line below
java -classpath $CLASSPATH com.logicboxes.foundation.sfnb.user.CustomerServiceLocator <params for test class>
To find out the parameters that the command above takes you can simply choose to not pass any parameter the first time you run it. The example will print out the parameters that it expects.
In registering/managing any domain name on the demo server always use ns1.onlyfordemo.net and ns2.onlyfordemo.net as your nameservers. ANY OTHER Nameserver will result in an INVALID NAMESERVER error.
Follow the same instructions above to run all the examples as below
Domain Contact example:
java -classpath $CLASSPATH com.logicboxes.foundation.sfnb.order.DomainContactServiceLocator <params required for the class>
Domain example:
java -classpath $CLASSPATH com.logicboxes.foundation.sfnb.order.DomainServiceLocator <params required for the class>
Fund example:
java -classpath $CLASSPATH com.logicboxes.foundation.sfnb.management.FundServiceLocator <params required for the class>
Step 5. Understanding Errors
Make sure you have read the General API Integration Instructions to obtain links to the error format and possible error documents. Reference: General API Integration Instructions >>
Step 6. Writing your own code
After running each example above, if you simply refer to the corresponding .java file in the src folder you will easily be able to figure out the code snippet you need to write in order to make a similar call.
Making an API call to perform any action is a matter of two steps:
(i) Obtain a pointer to the required service. This is done by using the code below
com.logicboxes.foundation.sfnb.user.Customer customerObj = new com.logicboxes.foundation.sfnb.user.CustomerServiceLocator(serviceAddress).getCustomerService();
In the above call “serviceAddress” is passed as a parameter to the constructor of “CustomerServiceLocator”. This serviceAddress refers to the URL of the server to which you are communicating. You can obtain this URL from the “settings.properties” file in the “WEB-INFclassescomlogicboxesproperties” folder.
(ii) Call the required method on this object. A complete reference of all methods is available in the Java Docs. This can be achieved by using the code below
int customerId = customerObj.addCustomer(resellerUserName, resellerPassword, “reseller”,resellerLangPref, parentId, customerUsername, customerPassword, name, company,address1, address2, address3, city, state, country, zip,telNoCc, telNo, altTelNoCc, altTelNo, faxNoCc, faxNo, langPref);
You will notice above that EVERY method in the java docs takes the same first 5 parameters as below
java.lang.String userName, java.lang.String password, java.lang.String role, java.lang.String langpref, int parentid
These parameters are common no matter which method you call. These parameters mean the following
java.lang.String userName: Your Username
java.lang.String password: Your Password
java.lang.String role: This will always be a string "reseller"
java.lang.String langpref: The 2 letter code of the language in which you wish to receive errors and descriptions - "en" for English
int parentid: The ID of your parent which you can get from your profile section
Step 7. Change the information to Live information when you are ready
Once you have followed the steps above and got the test examples to work successfully, you can duplicate the same code in your live application and replace the Demo Server and Reseller account information with your live username and password. The URL that you make your calls to also needs to change to the LIVE Server URL. The list of URLs are available in the “settings.properties” file inside the “WEB-INFclassescomlogicboxesproperties” folder.
Once again note, if you are using the HTTPS URL you MUST have JDK 1.4 or greater installed. HTTPS calls will not work with JDK 1.3 or lower.
Tags: Amp, Api, Api Documentation, Api Kit, appropriate server, Classes, Docs, Explanations, Folders, Integration Guide, Java Api, Javadocs, Lib, Platforms, Reference, Step 1, Step 2, Structure Web, Target, Upload, Using Java
While using one of the API kits, if you encounter any error that you need to report to Gossimer, you would need to provide the XML sent and received for the call you were making. Following is the procedure that you need to follow to retrieve the XML, for the various API kits we provide:
1. PHP kit: Set the debug value to true in the lib/config.php file
2. Perl kit: Set the $debugMode to 1 in /examples/cgi-bin/constants.cgi/font/index.html>
3. .NET kit: Set the static property Properties.Debug = True in statics.aspx
Having retrieved the XML sent & received, please contact us at support@gossimer.com, along with the following details:
Follow the instructions below to begin integration with the API using Perl -
Make sure you have read the General API Integration Instructions first. If you have already integrated the PERL API Kit at your end, read the Change Log first to know what has changed since.
Reference:
General API Integration Instructions >>
Change Log >>
Step 1. Download the API Kit
Click the link below to download the relevant API kits (updated on 6th March, 2008).
PERL_CoreKIT_v3_10.zip
PERL_DomainsKIT_v3_10.zip
PERL_HostingKIT_v3_10.zip
PERL_OtherProductsKIT_v3_10.zip
Step 2. Download the API Documentation
The complete documentation of all classes and methods available in the API can be found in the Docs below. The Docs below are javadocs, but the function names and explanations remain the same for all the platforms and the documentation is self explanatory. We recommend you download the docs and read through them completely once before you integrate your application (updated on 6th March, 2008).
Core_Docs_v3_10.zip
Domains_Docs_v3_10.zip (updated on 1st April, 2008)
Hosting_Docs_v3_10.zip
OtherProducts_Docs_v3_10.zip
Instructions to pass parameters to functions using the Perl Kit
Since Perl uses typeless variables you will have to ignore the datatypes presented in the docs. But for assigning values to variable of types other than strings and integers special care will have to be taken. Below is the list of datatypes presented in the API Doc and their usage in Perl.
|
Java Data |
Types Assigning values in Perl |
| String |
“firstname@secondname.com” |
| int |
123 |
| HashMap (Datatype for storing name-value pair) |
{“domain1.com”=>1,”domain2.com”=>1} |
| Array and Vector (Datatype for storing more than one value) |
["ns1.domain.com","ns2.domain.com"] |
| boolean (Datatype for storing true or false) |
TRUE / FALSE |
Example:
For Calling a Function which takes a String datatype and an integer datatype as its paramters
public int function1(java.lang.String userName, int parentid)
$result = $obj->function1(“firstname@secondname.com”,1);
For Calling a Function which takes a HashMap, a String Array and an integer Array as its parameters, where domainHash contains the domainname and the number of years as name value pairs.
public java.util.HashMap function2(java.util.HashMap domainHash, java.lang.String[] orderby, int[] resellerId)
$result = $obj->function2({“domain1.com”=>1,”domain2.com”=>2},["column1","column2"],[22,33])
For Calling a Function which takes a Vector and a boolean as its parameters
public java.lang.String function3(java.util.Vector nameServers, boolean add)
$result = $obj->function3(["ns1.domain.com","ns2.domain.com"],TRUE)
Step 3. Extract the files from the API Kit archive
You should get the following directory & files structure
cgi-bin/ – Pre-written examples. You can directly run these examples to test API functionality
lib/ – The Perl classfiles, library files and wsdl files that you need to run your application
Step 4. Run the examples
You can run the pre-written examples provided in the “examples” folder. Note the following steps to do so -
1. Upload the “examples” and “lib” folders to your web server where you run your Perl scripts. Make sure that both these folders are uploaded to the same parent folder.
2. You must have a recent version of Perl installed on the server.
Please do NOT use a version of SOAP-Lite newer than 0.60, which is the current stable release.
3. You must have a Demo account ready the first time. Read the General instructions if you have not yet setup your demo account. Reference: General API Integration Instructions >>
The Demo server duplicates all functionality of the live server, however all Domain Names will appear as available on the Demo Server. It does not query the live registry and therefore names which are not available on the live registry will still appear as available on the Demo Server. At times connectivity to the DEMO Registry may be down resulting in errors.
4. Make the appropriate changes to the “constants.cgi” file in the “cgi-bin” folder, by putting in the values for your “username”, “password” and “parentid”. The remaining settings have already been made for you in this file. You may only need to change the path for the “wsdl” folder if you have uploaded the wsdl folder elsewhere.
5. The URL to which the call is made is maintained in the “config.sh” file inside the “lib” folder. You can make changes to this file and redirect your calls to the appropriate server.
6. Import and point to note is that you will have to execute the config.sh file from the cgi-bin directory after making any changes in this file to reflect the changes.
7. Every Example file has a set of functions which you can run.
8. Once you have modified the appropriate example file, access it over your webserver by putting in your URL such as http://yourserver/examples/html and choose the required function from the links given in the left frame.
In registering/managing any domain name on the demo server always use ns1.onlyfordemo.net and ns2.onlyfordemo.net as your nameservers. ANY OTHER Nameserver will result in an INVALID NAMESERVER error.
Step 5. Understanding Errors
Make sure you have read the General API Integration Instructions to obtain links to the error format and possible error documents. Reference: General API Integration Instructions >>
Step 6. Writing your own code
After running each example above, if you simply refer to the corresponding .Perl file in the lib folder you will easily be able to figure out the code snippet you need to write in order to make a similar call.
Making an API call to perform any action is a matter of three steps:
(i) Include the appropriate Perl package as below
use lib::Customer;
(ii) Obtain a pointer to the required Class. This is done by using the code below
our $Customer = new Customer($debugMode);
(iii) Call the required method on this object. A complete reference of all methods is available in the Docs folder. This can be achieved by using the code below
$Customer->wsdlURL($wsdlFile);
$Customer->StartServices()
my @param = ($SERVICE_USERNAME, $SERVICE_PASSWORD, $SERVICE_ROLE, $SERVICE_LANGPREF, $SERVICE_PARENTID, $customerUserName, $customerPassword, $name, $company, $address1, $address2, $address3, $city, $state, $country, $zip, $telNoCc, $telNo, $altTelNoCc, $altTelNo, $faxNoCc, $faxNo, $customerLangPref);
You will notice above that EVERY method in the docs takes the same first 5 parameters as below
String SERVICE_USERNAME, String SERVICE_PASSWORD, String SERVICE_ROLE, String SERVICE_LANGPREF, int SERVICE_PARENTID
In the examples these parameters have been put into a single constants file from which they are accessed by including the constants file. These parameters are common no matter which method you call. These parameters mean the following
String SERVICE_USERNAME: Your UsernameSERVICE_PASSWORD
String : Your PasswordSERVICE_ROLE
String : This will always be a string "reseller"SERVICE_LANGPREF
String : The 2 letter code of the language in which you wish to receive errors and descriptions - "en" for EnglishSERVICE_PARENTID
int : The ID of your parent which you can get from your profile section
Step 7. Change the information to Live information when you are ready
Once you have followed the steps above and got the test examples to work successfully, you can duplicate the same code in your live application and replace the Demo Server and Reseller account information with your live username and password. You will make this change in the “config.sh” file in the “lib” folder
Tags: Api, appropriate server, Demo Server, Java, Perl, Web Server
Common API Examples
| Title: | registerDomain method under DomOrder class of Domains kit |
| Description: | The registerDomain method accepts complex variable/parameters whose usage cannot be easily illustrated using HTML forms. Hence, this feature cannot emulated from within your Reseller Control Panel through the Settings -> API -> Emulate API Calls -> Domains API Kit Emulator interface. |
| Solution: | An example of XML sent and received for this method is provided below for reference. |
| Example XML: | XML Sent:
<?xml version=”1.0″ encoding=”UTF-8″?> XML Received: <?xml version=”1.0″ encoding=”UTF-8″?> |
Common API Errors and their Solution
| Title: | Sending Integers as numbers rather than as strings |
| Description: | Due to the limitations of Java, we cannot accept integers (e.g. 1) as numbers in a hash, rather they must be sent to us as strings (i.e. “1″). This is a recurrent problem when using the PHP Kit since PHP puts in Integers as plain numbers (in a hash). |
| Solution: | Ensure that you’re sending in numbers as strings |
| Example XML: | XML Sent:
POST /anacreon/servlet/rpcrouter HTTP/1.0 User-Agent: NuSOAP/0.6.7 (1.7) Host: www.myorderbox.com Content-Type: text/xml; charset=ISO-8859-1 SOAPAction: “” Content-Length: 1543 <?xml version=”1.0″ encoding=”ISO-8859-1″?><SOAP-ENV:Envelope SOAP-ENV:encodingStyle=”http://schemas.xmlsoap.org/soap/encoding/” xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:SOAP-ENC=”http://schemas.xmlsoap.org/soap/encoding/” xmlns:si=”http://soapinterop.org/xsd” xmlns:impl=”com.logicboxes.foundation.sfnb.order.DomOrder” xmlns:apachesoap=”http://xml.apache.org/xml-soap”><SOAP-ENV:Body><impl:regis terDomain xmlns:impl=”com.logicboxes.foundation.sfnb.order.DomOrder”><userName xsi:type=”xsd:string”>xxxxx@zzz.com</userName><password xsi:type=”xsd:string”>xxxxx4</password><role xsi:type=”xsd:string”>reseller</role><langpref xsi:type=”xsd:string”>en</langpref><parentid xsi:type=”xsd:int”>1</parentid><domainHash xsi:type=”apachesoap:Map”><item><key xsi:type=”xsd:string”>fbc-elroy.com</key><value xsi:type=”xsd:int”>1</value></item></domainHash><ns xsi:type=”apachesoap:Vector”><item xsi:type=”xsd:string”>ns11.zzz.com</item><item xsi:type=”xsd:string”>ns12.zzz.com</item></ns><registrantContactId xsi:type=”xsd:int”>1548641</registrantContactId><adminContactId xsi:type=”xsd:int”>1548641</adminContactId><techContactId xsi:type=”xsd:int”>1548641</techContactId><billingContactId xsi:type=”xsd:int”>1548641</billingContactId><customerId xsi:type=”xsd:int”>321841</customerId><invoiceOption xsi:type=”xsd:string”>NoInvoice</invoiceOption></impl:registerDomain></SOAP- ENV:Body></SOAP-ENV:Envelope> XML Received: HTTP/1.0 500 Internal Server Error Server: Resin/3.0.s041002 Content-Type: text/xml; charset=utf-8 Date: Fri, 10 Jun 2005 16:40:04 GMT <?xml version=”1.0″ encoding=”UTF-8″?> <soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsd=”http://www.w3.org/2001/XMLSchema” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”> <soapenv:Body> <soapenv:Fault> <faultcode>soapenv:Server.userException</faultcode> <faultstring>com.logicboxes.error.LogicBoxesException#~#com.logicboxes.util. Util#~#java.lang.Integer#~#error#~#</faultstring> <detail/> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> |
| Title: | Incorrect Parent ID |
| Description: | An incorrect parent id is passed when trying to connect to the server |
| Solution: | Pass the correct parent id. You might be passing the one for demo while connecting to the live environment, or vice-versa. |
| Example XML: | Error Received:
Error Code: 2, SOAP raised an error. Error Details: |
| Title: | Maximum Number of Connections to the Registry Exceeded |
| Description: | When too many users send commands to the same Registry using a particular Registrar’s connections, then an error would be displayed |
| Solution: | This is a temporary issue and you need to simply try after sometime. Since the Registry provides each Registrar with a set number of connections, when these get exhausted an exception is thrown. |
| Example XML: | Error Received:
01-jul-2005 16:43:31 org.apache.axis.client.Call invoke |
| Title: | Error received when making https calls using the .NET API Kit |
| Description: | You may receive an error when trying to make an https call using our .NET API Kit since your .NET API Client needs to set a system security property to allow the system to accept SSL certificates. |
| Solution: | You need to add a class in your project (or the .NET Examples that we provide) having the following lines of code: Imports System.Security.Cryptography.X509CertificatesPublic Class TrustAllCertificatePolicy
Implements System.Net.ICertificatePolicy Public Sub New() End Sub Public Function CheckValidationResult(ByVal srvPoint As System.Net.ServicePoint, ByVal certificate As System.Security.Cryptography.X509Certificates.X509Certificate, ByVal request As System.Net.WebRequest, ByVal certificateProblem As Integer) As Boolean Implements System.Net.ICertificatePolicy.CheckValidationResult Return True End Function End Class
Also the user needs to include the following line of code before making the any function call to the https URL: System.Net.ServicePointManager.CertificatePolicy = New TrustAllCertificatePolicy We would suggest that you include the above line in the NetAPI.vb class constructor. After performing all the above steps, you would be able to make the https calls using the .NET API Kit without any error. |
| Example XML: | Error Received
System.Net.WebException: The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel. —> System.Security.Authentication.AuthenticationException: The remote certificate is invalid according to the validation procedure. |
Tags: Api, Api Calls, Api Examples, C Ommon, CheckValidationResult(ByVal srvPoint As System.Net.ServicePoint ByVal certificate As System.Security.Cryptography.X509Certificates.X509Certificate ByVal request As System.Net.WebRequest ByVal certific, Class TrustAllCertificatePolicy Implements System.Net., Cryptography, HTML, Html Forms, http, Impl, Interface Solution, Java, Kit Description, Lt Xml, Parent, particular Registrar, Php, Reference Example, Registerdomain, Registrar, Reseller Control Panel, Schemas, Sfnb, SSL, System.Net., Utf 8, Variable Parameters, Vector, www.myorderbox.com, Xml, Xml Soap, Xsi, Xxxxx, Zzz