X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2Fpay_batch%2Fpaymentech.pm;h=bb2c2588dbe8948a9f44122c57fe1f19379443dd;hp=3cf3134ffd5c9852a60e190e44d669bbf5f83ec0;hb=faf4866cd552cc40045fd048ac77ea8f2bece2d3;hpb=6635b3ee826a8dcd8755c4a1277f3ae268889f1e diff --git a/FS/FS/pay_batch/paymentech.pm b/FS/FS/pay_batch/paymentech.pm index 3cf3134ff..bb2c2588d 100644 --- a/FS/FS/pay_batch/paymentech.pm +++ b/FS/FS/pay_batch/paymentech.pm @@ -8,7 +8,7 @@ use Date::Format 'time2str'; use Date::Parse 'str2time'; use Tie::IxHash; use FS::Conf; -use FS::Misc 'bytes_substr'; +use Unicode::Truncate 'truncate_egc'; my $conf; my ($bin, $merchantID, $terminalID, $username, $password, $with_recurringInd); @@ -131,12 +131,14 @@ my %paymentech_countries = map { $_ => 1 } qw( US CA GB UK ); ecpBankAcctType => $paytype{lc($_->paytype)}, ecpDelvMethod => 'A', ), - avsZip => bytes_substr($_->zip, 0, 10), - avsAddress1 => bytes_substr($_->address1, 0, 30), - avsAddress2 => bytes_substr($_->address2, 0, 30), - avsCity => bytes_substr($_->city, 0, 20), - avsState => bytes_substr($_->state, 0, 2), - avsName => bytes_substr($_->first. ' '. $_->last, 0, 30), + # truncate_egc will die() on empty string + avsZip => $_->zip ? truncate_egc($_->zip, 10) : undef, + avsAddress1 => $_->address1 ? truncate_egc($_->address1, 30) : undef, + avsAddress2 => $_->address2 ? truncate_egc($_->address2, 30) : undef, + avsCity => $_->city ? truncate_egc($_->city, 20) : undef, + avsState => $_->state ? truncate_egc($_->state, 2) : undef, + avsName => ($_->first || $_->last) + ? truncate_egc($_->first. ' '. $_->last, 30) : undef, ( $paymentech_countries{ $_->country } ? ( avsCountryCode => $_->country ) : ()