summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Prykop <jonathan@freeside.biz>2016-12-12 13:33:29 -0600
committerJonathan Prykop <jonathan@freeside.biz>2016-12-12 13:33:29 -0600
commit2a565ea54a0af5f32ac26804be62249effa958bf (patch)
tree1c538a02273575facf639cdc9fca6a8a619051dd
parent3a4594911a30cfcc7a27f91b1b22721ff981a0a7 (diff)
RT#71513: Card tokenization [v3 bug fixes]
-rw-r--r--FS/FS/cust_main/Billing_Realtime.pm19
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";
}
}