Finance-BankVal-International-IBANValidate

 view release on metacpan or  search on metacpan

lib/Finance/BankVal/International/IBANValidate.pm  view on Meta::CPAN


sub loadUidPin {
	my $fileOpened = open UIDCONF, "InternationalLoginConfig.txt";
        if ( ! $fileOpened){
                $error .= "No UserID / PIN supplied, please visit http://www.unifiedsoftware.co.uk/freetrial/free-trial-home.html: ";
        }else{
         	while (<UIDCONF>){
        		if ($_ =~ /^UserID/){
                        	chomp(my @line = split (/ |\t/,$_));
                                $userid = $line[-1];
                        }elsif($_ =~ /^PIN/){
                                chomp(my @line = split (/ |\t/,$_));
                                $pin = $line[-1];
                        }

                }
                #check to see if conf file has empty params - if so return error message directing to free trial page
                if (($userid !~ /\w/) || ($pin !~ /\w/)){
                        $error .= "No User ID / PIN supplied, please visit http://www.unifiedsoftware.co.uk/freetrial/free-trial-home.html: ";
                }
        close UIDCONF;
        }
}

sub formatErrorMsg{
 	if($format eq "xml"){
        	$responseString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><iban><result>" . $responseString . "</result></iban>";
        }elsif($format eq "json"){
         	$responseString = "{\"result\":\"" . $responseString . "\"}";
        }
}

1;
__END__


=head1 NAME

Finance::BankVal::International::ibanValidate

=head1 SYNOPSIS

  use Finance::BankVal::International::IBANValidate qw(&ibanValidate);

  my $ans = ibanValidate('XML','ANIBANNUMBERGOESHERE','xmpl123','12345');

  =============================or for OO================================

  use Finance::BankVal::International::IBANValidate;

  $ibanObj = Finance::BankVal::International::IBANValidate->new();
  my $ans = $ibanObj->ibanValidate('XML','ANIBANNUMBERGOESHERE','xmpl123','12345');




=head1 DESCRIPTION

This module handles all of the restful web service calls to Unified Software's
BankValInternational IBAN validate service. It also handles fail over to the back up services
transparently to the calling script. It can be called in a procedural or OO fashion
(see synopsis)

The exportable method &ibanValidate(); takes a number of parameters including;

1: Format 	- the response format (either xml, json or csv)

2: IBAN		- the IBAN to be validated

3: UserID	- available from www.unifiedsoftware.co.uk

4: PIN		- available from www.unifiedsoftware.co.uk

(UserID and PIN are available from http://www.unifiedsoftware.co.uk/freetrial/free-trial-home.html)

The order of the parameters B<must> be as above. The UserID and PIN can be stored in the InternationalLoginConfig.txt
file bundled with this module, the use of this file saves passing the PIN and user ID data with each call to ibanValidate.
For example, a call to validate an IBAN passing the user ID and PIN as parameters
and printing the reply to console should follow this form:

=====================================================================

 #!/usr/bin/perl

 use Finance::BankVal::International::IBANValidate qw(&ibanValidate);

 my $ans = ibanValidate('XML','ANIBANNUMBERGOESHERE','xmpl123','12345');

 print $ans;

=============================OR for OO===============================

 use Finance::BankVal::International::IBANValidate;

 $ibanObj = Finance::BankVal::International::IBANValidate->new();
 my $ans = $ibanObj->ibanValidate('XML','ANIBANNUMBERGOESHERE','xmpl123','12345');

 print $ans;

=====================================================================

valid parameter lists are:-

ibanValidate('$format','$iban','$userID','$PIN');

ibanValidate('$format','$iban');

n.b. the last parameter list requires that the user ID and PIN are stored
in the I<InternationalLoginConfig.txt> file bundled with this module.

=head2 EXPORT

None by default.
&ibanValidate is exported on request i.e. "use Finance::BankVal::International::IBANValidate qw(&ibanValidate);"

=head1 DEPENDENCIES

This module requires these other modules and libraries:

use LWP::UserAgent;
use XML::Simple;



( run in 0.936 second using v1.01-cache-2.11-cpan-364913b4093 )