diff options
author | Jonathan Prykop <jonathan@freeside.biz> | 2016-12-28 13:56:31 -0600 |
---|---|---|
committer | Jonathan Prykop <jonathan@freeside.biz> | 2016-12-28 14:04:01 -0600 |
commit | b6151684a227ad8018de4fdc661fcb61d00675a7 (patch) | |
tree | 8f43767c9608bd59c5cd8f2b4e3ed9e562611d7e | |
parent | 130db7caee3817758dcf3906d2e975e4eff0e466 (diff) |
71513: Card tokenization [undid refund always sending token, skip token_check if nothing is tokenizable]FREESIDE_4_BRANCH_71513
-rw-r--r-- | FS/FS/cust_main/Billing_Realtime.pm | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm index 28ed3c4ec..e636e8891 100644 --- a/FS/FS/cust_main/Billing_Realtime.pm +++ b/FS/FS/cust_main/Billing_Realtime.pm @@ -1587,12 +1587,6 @@ sub realtime_refund_bop { $content{'name'} = $self->get('first'). ' '. $self->get('last'); } } - if ( $cust_pay->payby eq 'CARD' - && !$content{'card_number'} - && $cust_pay->tokenized - ) { - $content{'card_token'} = $cust_pay->payinfo; - } $void->content( 'action' => 'void', %content ); $void->test_transaction(1) if $conf->exists('business-onlinepayment-test_transaction'); @@ -2413,8 +2407,9 @@ sub token_check { my $cache = {}; #cache for module info - # look for a gateway that can't tokenize + # look for a gateway that can and can't tokenize my $require_tokenized = 1; + my $someone_tokenizing = 0; foreach my $gateway ( FS::payment_gateway->all_gateways( 'method' => 'CC', @@ -2426,18 +2421,26 @@ sub token_check { # no default gateway, no promise to tokenize # can just load other gateways as-needeed below $require_tokenized = 0; - last; + last if $someone_tokenizing; + next; } my $info = _token_check_gateway_info($cache,$gateway); die $info unless ref($info); # means it's an error message - unless ($info->{'can_tokenize'}) { + if ($info->{'can_tokenize'}) { + $someone_tokenizing = 1; + } else { # a configured gateway can't tokenize, that's all we need to know right now # can just load other gateways as-needeed below $require_tokenized = 0; - last; + last if $someone_tokenizing; } } + unless ($someone_tokenizing) { #no need to check, if no one can tokenize + warn "no gateways tokenize\n" if $debug; + return; + } + warn "REQUIRE TOKENIZED" if $require_tokenized && $debug; # upgrade does not call this with autocommit turned on, |