[freeside-commits] branch FREESIDE_3_BRANCH updated. 5744a93e395c6d7b4203795ca2aec2527b225ee5
Ivan
ivan at 420.am
Wed Feb 1 09:08:29 PST 2017
The branch, FREESIDE_3_BRANCH has been updated
via 5744a93e395c6d7b4203795ca2aec2527b225ee5 (commit)
from 3ccc9eb65b9c353db60191e658099cd79686692a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 5744a93e395c6d7b4203795ca2aec2527b225ee5
Author: Ivan Kohler <ivan at freeside.biz>
Date: Wed Feb 1 09:08:28 2017 -0800
deal with the data we have as best we can without erroring out, RT#71513
diff --git a/FS/FS/payinfo_Mixin.pm b/FS/FS/payinfo_Mixin.pm
index b30ea35..6023aa2 100644
--- a/FS/FS/payinfo_Mixin.pm
+++ b/FS/FS/payinfo_Mixin.pm
@@ -199,11 +199,21 @@ sub payinfo_check {
if ( $self->payby eq 'CARD' && ! $self->is_encrypted($self->payinfo) ) {
- if ( $self->payinfo =~ /^99\d{14}$/ && ! $self->paycardtype ) {
- return "paycardtype required (cannot be derived from a token)";
- } else {
- $self->set('paycardtype', cardtype($self->payinfo));
- }
+ unless ( $self->paycardtype ) {
+
+ if ( $self->payinfo =~ /^99\d{14}$/ ) {
+ if ( $self->paymask =~ /^\d+x/ ) {
+ $self->set('paycardtype', cardtype($self->paymask));
+ } else {
+ $self->set('paycardtype', '');
+ # return "paycardtype required ".
+ # "(can't derive from a token and no paymask w/prefix provided)";
+ }
+ } else {
+ $self->set('paycardtype', cardtype($self->payinfo));
+ }
+
+ }
if ( $ignore_masked_payinfo and $self->mask_payinfo eq $self->payinfo ) {
# allow it
@@ -221,13 +231,22 @@ sub payinfo_check {
$self->payinfo('N/A'); #???
}
}
+
} else {
- if ( $self->payby eq 'CARD' and $self->paymask ) {
- # if we can't decrypt the card, at least detect the cardtype
- $self->set('paycardtype', cardtype($self->paymask));
- } else {
- $self->set('paycardtype', '');
+
+ unless ( $self->paycardtype ) {
+
+ if ( $self->payby eq 'CARD' && $self->paymask =~ /^\d+x/ ) {
+ # if we can't decrypt the card, at least detect the cardtype
+ $self->set('paycardtype', cardtype($self->paymask));
+ } else {
+ $self->set('paycardtype', '');
+ # return "paycardtype required ".
+ # "(can't derive from a token and no paymask w/prefix provided)";
+ }
+
}
+
if ( $self->is_encrypted($self->payinfo) ) {
#something better? all it would cause is a decryption error anyway?
my $error = $self->ut_anything('payinfo');
-----------------------------------------------------------------------
Summary of changes:
FS/FS/payinfo_Mixin.pm | 39 +++++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)
More information about the freeside-commits
mailing list