$Net::WHMCS::Base::VERSION
=
'0.10'
;
has
'WHMCS_URL'
=> (
is
=>
'rw'
,
required
=> 1
);
has
'api_identifier'
=> (
is
=>
'ro'
);
has
'api_secret'
=> (
is
=>
'ro'
);
has
'WHMCS_USERNAME'
=> (
is
=>
'rw'
);
has
'WHMCS_PASSWORD'
=> (
is
=>
'rw'
);
has
'WHMCS_API_ACCESSKEY'
=> (
is
=>
'rw'
);
has
'ua'
=> (
is
=>
'lazy'
);
sub
_build_ua {
return
LWP::UserAgent->new;
}
sub
build_request {
my
(
$self
,
$params
) =
@_
;
if
(not
exists
$params
->{action}) {
croak
"No API action set\n"
;
}
if
(
$self
->api_identifier) {
$params
->{identifier} =
$self
->api_identifier;
$params
->{secret} =
$self
->api_secret;
}
else
{
$params
->{username} =
$self
->WHMCS_USERNAME;
$params
->{password} =
$self
->WHMCS_PASSWORD;
$params
->{accesskey} =
$self
->WHMCS_API_ACCESSKEY
if
$self
->WHMCS_API_ACCESSKEY;
}
$params
->{responsetype} =
'json'
;
my
$resp
=
$self
->ua->post(
$self
->WHMCS_URL,
$params
);
return
{
result
=>
'error'
,
message
=>
$resp
->status_line
}
unless
$resp
->is_success;
return
decode_json(
$resp
->content);
}
1;