Business-Tax-VAT-Validation
view release on metacpan or search on metacpan
"ExtUtils::MakeMaker" : "0"
}
},
"configure" : {
"requires" : {
"ExtUtils::MakeMaker" : "0"
}
},
"runtime" : {
"requires" : {
"HTTP::Request::Common" : "1",
"JSON" : "0",
"LWP::UserAgent" : "1",
"perl" : "v5.8.9"
}
}
},
"release_status" : "stable",
"resources" : {
"bugtracker" : {
"web" : "https://github.com/bigpresh/Business-Tax-VAT-Validation/issues"
license: gpl
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
version: '1.4'
name: Business-Tax-VAT-Validation
no_index:
directory:
- t
- inc
requires:
HTTP::Request::Common: '1'
JSON: '0'
LWP::UserAgent: '1'
perl: v5.8.9
resources:
bugtracker: https://github.com/bigpresh/Business-Tax-VAT-Validation/issues
homepage: https://github.com/bigpresh/Business-Tax-VAT-Validation/
repository: https://github.com/bigpresh/Business-Tax-VAT-Validation
version: '1.24'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
Makefile.PL view on Meta::CPAN
use 5.005;
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteMakefile(
'NAME' => 'Business::Tax::VAT::Validation',
'VERSION_FROM' => 'lib/Business/Tax/VAT/Validation.pm', # finds $VERSION
'PREREQ_PM' => {
HTTP::Request::Common => 1.0,
LWP::UserAgent => 1.0,
JSON => 0,
perl => 5.8.9,
},
ABSTRACT_FROM => 'lib/Business/Tax/VAT/Validation.pm',
AUTHOR => 'David Precious <davidp@preshweb.co.uk>',
LICENSE => 'GPL_3',
META_MERGE => {
resources => {
repository => 'https://github.com/bigpresh/Business-Tax-VAT-Validation',
lib/Business/Tax/VAT/Validation.pm view on Meta::CPAN
# As usual with GNU software, this one is provided as is, #
# WITHOUT ANY WARRANTY, without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. #
# #
############################################################################
use strict;
use warnings;
our $VERSION = '1.24';
use HTTP::Request::Common qw(POST);
use LWP::UserAgent;
use JSON qw/ decode_json /;
=head1 NAME
Business::Tax::VAT::Validation - Validate EU VAT numbers against VIES/HMRC
=head1 SYNOPSIS
use Business::Tax::VAT::Validation;
lib/Business/Tax/VAT/Validation.pm view on Meta::CPAN
} else {
$ua->env_proxy;
}
$ua->agent( 'Business::Tax::VAT::Validation/'. $Business::Tax::VAT::Validation::VERSION );
return $ua;
}
sub _check_vies {
my ($self, $vatNumber, $countryCode) = @_;
my $ua = $self->_get_ua();
my $request = HTTP::Request->new(POST => $self->{baseurl});
$request->content(_in_soap_envelope($vatNumber, $countryCode));
$request->content_type("text/xml; charset=utf-8");
my $response = $ua->request($request);
return $countryCode . '-' . $vatNumber if $self->_is_res_ok( $response->code, $response->decoded_content );
}
sub _check_hmrc {
my ($self, $vatNumber, $countryCode) = @_;
my $ua = $self->_get_ua();
my $request = HTTP::Request->new(GET => $self->{hmrc_baseurl}.$vatNumber);
$request->header(Accept => 'application/vnd.hmrc.1.0+json');
my $response = $ua->request($request);
$self->{res} = $response->decoded_content;
if ($response->code == 200) {
my $data = decode_json($self->{res});
$self->{information}->{name} = $data->{target}->{name};
my $line = 1;
my $address = "";
while (defined $data->{target}->{address}->{"line$line"}) {
( run in 0.439 second using v1.01-cache-2.11-cpan-de7293f3b23 )