msgbartop
Gossimer’s Premier Web Hosting and Domain Registration Knowledgebase.
msgbarbottom

23 Aug 10 Sample Domain Names API Flow and some Notes

Buying Process for a single Domain Name

  1. Checking Domain Availability: First call the DomOrder.checkAvailabilityMultiple() method to discover if the domain in question is available for registration.
     
  2. Customer Selection/Addition: If the domain is available, you will have to retrieve the customer id of the customer who wishes to buy the domain. If the customer already exists, you can use Customer.getCustomerId() to get it or use Customer.addCustomer() to create a new one. The customer id will be in the return value in both cases.
     
  3. Get Registration Info: You’ll need the Name Servers and the Contact Ids to register a domain at the registry. Get the list of existing contacts using DomContact.list().
     
  4. Validate the parameters: Now pass all the information required to DomOrder.validateDomainRegistrationsParams() to validate them and ensure correctness.
     
  5. Register the Domain: Call DomOrder.addWithoutValidation() with all the parameters you’ve just validated and you’re basically done.

IMPORTANT

  • Using DomOrder.add(): The use of DomOrder.add() to register a domain is now deprecated. This method is single-threaded and inefficient and so is much slower than using steps 4 and 5 in the Buying process flow. Use the DomOrder.validateDomainRegistrationsParams(), DomOrder.addWithoutValidation() method pair instead.
  •  

  • Adding contacts for .US and .COOP domains: The contacts for .US and .COOP need to have addition information to be correctly added. .US requires a Nexus Category while .COOP requires 2 Sponsors. When attempting to register these domains, DomOrder.validateDomainRegistrationsParams() will return “InsufficientContactDataException in DomValidation while adding order” in the status has under the error key. When you see this error, you should use DomContactExt.setContactDetails() to set the relevant additional information and try again. If you attempt to call DomOrder.addWithoutValidation() with these incomplete contacts for .US or .COOP, you will get “Error during adding contact” in the status hash under the error key.
  •  

     

     

    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: , , , , , , , , , , , , , , , , , , , , , ,

    19 Aug 10 Product Keys

     

    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
     

    IMPORTANT 

    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: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

    17 Aug 10 Sample Hosting API Flow and some Notes

    Buying Process for a Hosting Plan or Custom Package

     

    1. Retrieve all Product Keys: First get the list of Product Keys from your local store. These Product keys are currently:
         

      • lhbbudgetusa
      • lhbbudgetplanus
      • w2kbudgetusa
      • w2kbudgetplanus
      • lhbpremiumusa
      • w2kpremiumusa
      • mailboxbudgetusa
      • mailboxbudgetplanus
      • mailboxpremiumusa
         
    2. Retrieve Hosting Plans for a Product Key: Now use WebHostingOrderData.getHostingPlans() to get the 3 hosting plans (premium, budget and custom) available per product key except for lhbbudgetplanus, w2kbudgetplanus and mailboxpremiumusa. Each of these three product keys have the custom build feature disabled and are associated with only 2 hosting plans, premium and standard. The return value is a hash of hashes with a serial number as the key. Per plan, the most important information is the planid, the planname and the totalprice. Use OrderSetup.getPricingKeyDisplayName() and OrderSetup.getPricingParamsDisplayName() to get the standard names for these values to build you display. You can also use getMonthlyCostAndValidate() under the appropriate HostingOrder class to get the pro-rata pricing for the plan.
       
    3. Buy a Hosting Plan: Use add() under the appropriate HostingOrder class to add an order. Be sure to pass in ‘planid‘ as the key and the actual plan id as the value. You can specify the invoice options as well.
       
    4. Buy a Custom Package: Use OrderSetup.getPricingKeyPricingParamMap() to get a list of all pricing keys and their related pricing params. Once more, you can use OrderSetup.getPricingParamsDisplayName() and OrderSetup.getPricingKeyDisplayName() to get the standard names for these values to build you display. You can also use getMonthlyCostAndValidate() under the appropriate HostingOrder class to get the pro-rata pricing for the package. Calling fetchAlternateLocationDetailsAndMonthlyCosts() under the appropriate HostingOrder class will give you the cost for a similiar order configuration at an alternate location. Once everything is set, you call add() under the appropriate HostingOrder class and passing it all the key:value pairs required.

     

     

    Modifying a Hosting Plan or Custom Package

    Reference: Renewing/Upgrading/Downgrading/Deleting a Web Hosting package >>

     

    1. Retrieve the price of the new modification: First call getModPricing() under the appropriate HostingOrder class to get the pricing for the modifications you wish to make, passing in all the key:value pairs, not just the ones which have changed.
       
    2. Modify the order: Now call mod() under the appropriate HostingOrder class and pass it a complete hash once more, with all the keys and their related values, not just the ones which have changed.

     

     

    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: , , , , , , , , , , , , , , , ,