NAME
WWW::eNom - Interact with eNom, Inc.'s reseller API
SYNOPSIS
use WWW::eNom;
my $enom = WWW::eNom->new(
username => "resellid",
password => "resellpw",
response_type => "xml_simple",
test => 1
);
$enom->AddToCart(
EndUserIP => "1.2.3.4",
ProductType => "Register",
SLD => "myspiffynewdomain",
TLD => "com"
);
...
METHODS
new
Constructs a new object for interacting with the eNom API. If the "test" parameter is given, then the API calls will be made to the test server instead of the live one.
As of v0.3.1, an optional "response_type" parameter is supported. For the sake of backward compatibility, the default is "xml_simple"; see below for an explanation of this response type. Use of any other valid option will lead to the return of string responses straight from the eNom API. These options are:
xml
html
text
AddBulkDomains (and many others)
my $response = $enom->AddBulkDomains(
ProductType => "register",
ListCount => 1,
SLD1 => "myspiffynewdomain",
TLD1 => "com",
UseCart => 1
);
Performs the specified command - see the eNom API users guide for the commands and their arguments.
For convenience, if you pass the "Domain" argument, it will be split into "SLD" and "TLD"; that is, you can say
my $response = $enom->Check( SLD => "myspiffynewdomain", TLD => "com" );
or
my $response = $enom->Check( Domain => "myspiffynewdomain.com" );
The default return value is a Perl hash (via XML::Simple) representing the response XML from the eNom API; the only differences are
The "errors" key returns an array instead of a hash
"responses" returns an array of hashes
Keys which end with a number are transformed into an array
So for instance, a command Check( Domain =
"enom.@" )> (the "@" means "com, net, org, biz, info") might return:
{
Domain => [qw(enom.com enom.net enom.org enom.biz enom.info)],
Command => "CHECK",
RRPCode => [qw(211 211 211 211 211)],
RRPText => [
"Domain not available",
"Domain not available",
"Domain not available",
"Domain not available",
"Domain not available"
]
}
You will need to read the API guide to check whether to expect responses in "RRPText" or "responses"; it's not exactly consistent.
RELEASE NOTE
As of v1.0.0, this module has been renamed to WWW::eNom. Net::eNom is now a thin wrapper to preserve backward compatibility.
AUTHOR
Richard Simões, <rsimoes AT cpan DOT org>
Original version by Simon Cozens.
COPYRIGHT & LICENSE
Copyright © 2013 Richard Simões. This module is released under the terms of the MIT License and may be modified and/or redistributed under the same or any compatible license.