IO-EPP
view release on metacpan or search on metacpan
lib/IO/EPP/CNic.pm view on Meta::CPAN
return $answ;
}
=head1 METHODS
Further overlap functions where the provider has features
=head2 login
Ext params for login,
INPUT: new password for change
=cut
sub login {
my ( $self, $pw ) = @_;
my $svcs = '
<objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
<objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
<objURI>urn:ietf:params:xml:ns:host-1.0</objURI>';
my $extension = '
<extURI>urn:ietf:params:xml:ns:rgp-1.0</extURI>
<extURI>urn:ietf:params:xml:ns:secDNS-1.1</extURI>
<extURI>urn:ietf:params:xml:ns:idn-1.0</extURI>
<extURI>urn:ietf:params:xml:ns:fee-0.5</extURI>
<extURI>urn:ietf:params:xml:ns:launch-1.0</extURI>
<extURI>urn:ietf:params:xml:ns:regtype-0.1</extURI>
<extURI>urn:ietf:params:xml:ns:auxcontact-0.1</extURI>';
return $self->SUPER::login( $pw, $svcs, $extension );
}
sub create_contact {
my ( $self, $params ) = @_;
$params->{company} =~ s/&/&/g;
$params->{addr} = [ $params->{addr} ] unless ref $params->{addr};
s/&/&/g for @{$params->{addr}};
$params->{cont_id} = IO::EPP::Base::gen_id( 16 );
my $visible = $$params{pp_flag} ? 0 : 1;
$params->{authinfo} ||= IO::EPP::Base::gen_pw( 16 );
$params->{pp_ext} = '
<contact:disclose flag="'.$visible.'">
<contact:voice/>
<contact:email/>
</contact:disclose>';
return $self->SUPER::create_contact( $params );
}
sub update_contact {
my ( $self, $params ) = @_;
if ( ref $params->{chg} ) {
$params->{chg}{company} =~ s/&/&/g if $params->{chg}{company};
$params->{chg}{addr} = [ $params->{chg}{addr} ] unless ref $params->{chg}{addr};
s/&/&/g for @{$params->{chg}{addr}};
$params->{chg}{authinfo} ||= IO::EPP::Base::gen_pw( 16 );
}
my $visible = $$params{pp_flag} ? 0 : 1;
$params->{pp_ext} = '
<contact:disclose flag="'.$visible.'">
<contact:voice/>
<contact:email/>
</contact:disclose>';
return $self->SUPER::update_contact( $params );
}
sub update_ns {
my ( $self, $params ) = @_;
$params->{no_empty_chg} = 1;
return $self->SUPER::update_ns( $params );
}
=head2 check_premium
Get prices for premium domains
=cut
sub check_premium {
my ( $self, $params ) = @_;
$params->{domains} = [ delete $params->{dname} ] if $params->{dname};
return ( 0, 0, 'no domains' ) unless $params->{domains} && scalar( @{$params->{domains}} );
my $dms = '';
foreach my $dm ( @{$params->{domains}} ) {
$dms .= qq| <fee:domain>
<fee:name>$dm</fee:name>
<fee:currency>USD</fee:currency>
<fee:command>create</fee:command>
<fee:period unit="y">1</fee:period>
</fee:domain>\n|;
}
$params->{extension} = qq| <fee:check xmlns:fee="urn:ietf:params:xml:ns:fee-0.5">\n$dms </fee:check>\n|;
return $self->SUPER::check_domains( $params );
}
# Get info on Claims Notice
sub check_claims {
my ( $self, $params ) = @_;
$params->{domains} = [ delete $params->{dname} ] if $params->{dname};
$params->{extension} =
' <launch:check xmlns:launch="urn:ietf:params:xml:ns:launch-1.0" type="claims">
<launch:phase>claims</launch:phase>
</launch:check>
';
return $self->SUPER::check_domains( $params );
}
=head1 create_domain
CentralNic requires a domain price for each registration, need keys:
C<cost> -- the price of a domain, if the domain is registered for several years, the first year is the price of registration, and the remaining year is the price of renewal;
C<currency> -- price currency.
For IDN domains you need to specify C<idn_lang> -- the code page of the name and C<uname> -- the name itself in utf8
=cut
( run in 3.862 seconds using v1.01-cache-2.11-cpan-fe3c2283af0 )