diff options
author | Jonathan Prykop <jonathan@freeside.biz> | 2016-12-12 13:33:29 -0600 |
---|---|---|
committer | Jonathan Prykop <jonathan@freeside.biz> | 2016-12-12 13:33:29 -0600 |
commit | 2a565ea54a0af5f32ac26804be62249effa958bf (patch) | |
tree | 1c538a02273575facf639cdc9fca6a8a619051dd | |
parent | 3a4594911a30cfcc7a27f91b1b22721ff981a0a7 (diff) |
RT#71513: Card tokenization [v3 bug fixes]
-rw-r--r-- | FS/FS/cust_main/Billing_Realtime.pm | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm index cf32a29..453cd71 100644 --- a/FS/FS/cust_main/Billing_Realtime.pm +++ b/FS/FS/cust_main/Billing_Realtime.pm @@ -779,16 +779,15 @@ sub realtime_bop { # This block will only run if the B::OP module supports card_token but not the Tokenize transaction; # if that never happens, we should get rid of it (as it has the potential to store real card numbers on error) - if ( $transaction->can('card_token') && $transaction->card_token ) { - if ( $options{'payinfo'} eq $self->payinfo ) { - $self->payinfo($transaction->card_token); - my $error = $self->replace; - if ( $error ) { - $log->critical('Error storing token for cust '.$self->custnum.': '.$error); - #not returning error, should at least attempt to handle results of an otherwise valid transaction - #this leaves real card number in cust_main, but can't do much else if cust_main won't replace - warn "WARNING: error storing token: $error, but proceeding anyway\n"; - } + if (my $card_token = $self->_tokenize_card($transaction,\%options)) { + # cpp will be replaced in _realtime_bop_result + $cust_pay_pending->payinfo($card_token); + my $error = $self->replace; + if ( $error ) { + $log->critical('Error storing token for cust '.$self->custnum.': '.$error); + #not returning error, should at least attempt to handle results of an otherwise valid transaction + #this leaves real card number in cust_main, but can't do much else if cust_main won't replace + warn "WARNING: error storing token: $error, but proceeding anyway\n"; } } |