X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=PayflowPro.pm;h=fe70d7a32a310ef92bcf56d1e84d486314152ed7;hb=4e8b625bd70a0a118bc0c2e329e1e9491a0171ca;hp=8664172d6834b292eb8e03a190325258e6963051;hpb=5cdd4cdee83321b5e89b7295da4a1424b922fcec;p=Business-OnlinePayment-PayflowPro.git diff --git a/PayflowPro.pm b/PayflowPro.pm index 8664172..fe70d7a 100644 --- a/PayflowPro.pm +++ b/PayflowPro.pm @@ -14,12 +14,11 @@ require Exporter; @ISA = qw(Exporter AutoLoader Business::OnlinePayment); @EXPORT = qw(); @EXPORT_OK = qw(); -$VERSION = '0.02_02'; +$VERSION = '0.04'; sub set_defaults { my $self = shift; - #$self->server('staging.linkpt.net'); $self->server('payflow.verisign.com'); $self->port('443'); @@ -126,7 +125,7 @@ sub submit { $month = '0'. $month if $month =~ /^\d$/; } - $zip = $content{'zip'} =~ s/\D//; + ( $zip = $content{'zip'} ) =~ s/\D//g; #} #$content{'address'} =~ /^(\S+)\s/; @@ -167,7 +166,7 @@ sub submit { my @required = qw( TRXTYPE TENDER PARTNER VENDOR USER PWD ); if ( $self->transaction_type() eq 'C' ) { #credit card - if ( $self->action() =~ /^[CDV]$/ && exists($content{'ORIGID'}) + if ( $content{'action'} =~ /^[CDV]$/ && exists($content{'ORIGID'}) && defined($content{'ORIGID'}) && length($content{'ORIGID'}) ) { push @required, qw(ORIGID); } else { @@ -198,14 +197,16 @@ sub submit { $self->authorization( $response->{'AUTHCODE'} ); $self->order_number( $response->{'PNREF'} ); my $avs_code = ''; - if ( $response->{AVSADDR} eq 'Y' && $response->{AVSZIP} eq 'Y' ) { - $avs_code = 'Y'; - } elsif ( $response->{AVSADDR} eq 'Y' ) { - $avs_code = 'A'; - } elsif ( $response->{AVSZIP} eq 'Y' ) { - $avs_code = 'Z'; - } elsif ( $response->{AVSADDR} eq 'N' || $response->{AVSZIP} eq 'N' ) { - $avs_code = 'N'; + if ( exists $response->{AVSADDR} || exists $response->{AVSZIP} ) { + if ( $response->{AVSADDR} eq 'Y' && $response->{AVSZIP} eq 'Y' ) { + $avs_code = 'Y'; + } elsif ( $response->{AVSADDR} eq 'Y' ) { + $avs_code = 'A'; + } elsif ( $response->{AVSZIP} eq 'Y' ) { + $avs_code = 'Z'; + } elsif ( $response->{AVSADDR} eq 'N' || $response->{AVSZIP} eq 'N' ) { + $avs_code = 'N'; + } } $self->avs_code( $avs_code ); $self->cvv2_code( $response->{'CVV2MATCH'});