diff options
Diffstat (limited to 'Paymentech.pm')
-rw-r--r-- | Paymentech.pm | 44 |
1 files changed, 24 insertions, 20 deletions
diff --git a/Paymentech.pm b/Paymentech.pm index df652ed..a64eb97 100644 --- a/Paymentech.pm +++ b/Paymentech.pm @@ -3,7 +3,9 @@ package Business::BatchPayment::Paymentech; use 5.006; use strict; use warnings; -our $VERSION = '0.03'; +our $VERSION = '0.07'; + +use Unicode::Truncate 'truncate_egc'; =head1 NAME @@ -186,13 +188,15 @@ sub format_item { } } # else don't send recurringInd at all - push @order, ( - avsZip => $item->zip, - avsAddress1 => bytes_substr($item->address, 0, 30), - avsAddress2 => bytes_substr($item->address2, 0, 30), - avsCity => bytes_substr($item->city, 0, 20), - avsState => bytes_substr($item->state, 0, 2), - avsName => bytes_substr($item->first_name. ' '. $item->last_name, 0, 30), + push @order, ( # truncate_egc will die() on empty string + avsZip => $item->zip, + avsAddress1 => $item->address ? truncate_egc($item->address, 30) : undef, + avsAddress2 => $item->address2 ? truncate_egc($item->address2, 30) : undef, + avsCity => $item->city ? truncate_egc($item->city, 20) : undef, + avsState => $item->state ? truncate_egc($item->state, 2) : undef, + avsName => ($item->first_name || $item->last_name) + ? truncate_egc($item->first_name.' '.$item->last_name, 30) + : undef, ( $paymentech_countries{ $item->country } ? ( avsCountryCode => $item->country ) : () @@ -306,18 +310,18 @@ sub parse_item { $item; } -# internal use - -sub bytes_substr { - my ($string, $offset, $length, $repl) = @_; - my $bytes = substr( - Encode::encode('utf8', $string || ''), - $offset, - $length, - Encode::encode('utf8', $repl || '') - ); - return Encode::decode('utf8', $bytes, Encode::FB_QUIET); -} +# DEPRECATED + +# sub bytes_substr { +# my ($string, $offset, $length, $repl) = @_; +# my $bytes = substr( +# Encode::encode('utf8', $string || ''), +# $offset, +# $length, +# Encode::encode('utf8', $repl || '') +# ); +# return Encode::decode('utf8', $bytes, Encode::FB_QUIET); +# } package Business::BatchPayment::Paymentech::Transport; |