From 2a565ea54a0af5f32ac26804be62249effa958bf Mon Sep 17 00:00:00 2001 From: Jonathan Prykop Date: Mon, 12 Dec 2016 13:33:29 -0600 Subject: [PATCH] RT#71513: Card tokenization [v3 bug fixes] --- FS/FS/cust_main/Billing_Realtime.pm | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm index cf32a29ba..453cd712a 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"; } } -- 2.11.0