Experian-IDAuth
view release on metacpan or search on metacpan
lib/Experian/IDAuth.pm view on Meta::CPAN
package Experian::IDAuth;
use 5.010;
use strict;
use warnings;
our $VERSION = '2.53';
use Locale::Country;
use Path::Tiny;
use Syntax::Keyword::Try;
use WWW::Mechanize;
## no critic (DiscouragedModules)
use XML::Simple;
use XML::Twig;
use SOAP::Lite;
use File::MimeInfo::Magic;
use IO::Socket::SSL 'SSL_VERIFY_NONE';
use Carp;
use Digest::SHA qw(hmac_sha256_base64);
sub new {
my ($class, %args) = @_;
my $obj = bless {}, $class;
$obj->set($obj->defaults, %args);
return $obj;
}
sub defaults {
my $self = shift;
return (
username => 'experian_user',
password => '?',
private_key => 'private_key',
public_key => 'public_key',
members_url => 'https://proveid.experian.com',
api_uri => 'http://corpwsdl.oneninetwo',
api_proxy => 'https://xml.proveid.experian.com/IDSearch.cfc',
header_ns_url => 'http://xml.proveid.experian.com/xsd/Headers',
folder => '/tmp/proveid',
# if you're using a logger,
#logger => Log::Log4per::get_logger,
);
}
sub set {
my ($self, %args) = @_;
$self->{$_} = $args{$_} for keys %args;
return $self;
}
sub get_result {
my $self = shift;
my $search_option = $self->{search_option};
croak "invalid search_option $search_option" if $search_option !~ /(?:ProveID_KYC|CheckID)/;
$self->_do_192_authentication;
return $self->_get_result_proveid if $search_option eq 'ProveID_KYC';
return $self->_get_result_checkid;
}
sub save_pdf_result {
my $self = shift;
# Parse and convert the result to hash
my $result = $self->_xml_as_hash or croak 'no xml result in place';
# 192 reference which we should pass to 192 to download the result
my $our_ref = $result->{OurReference} or croak "No 'OurReference'; invalid save-pdf request";
my $url = $self->{members_url};
my $mech = WWW::Mechanize->new();
$mech->ssl_opts(
( run in 0.691 second using v1.01-cache-2.11-cpan-39bf76dae61 )