[freeside-commits] branch master updated. 2c6ae1f63d3e3f66e06b15d275db0c688a974480

Jonathan Prykop jonathan at 420.am
Wed Dec 28 11:58:33 PST 2016


The branch, master has been updated
       via  2c6ae1f63d3e3f66e06b15d275db0c688a974480 (commit)
       via  df92ab34778ae931caeaf87daa9c763e75feeede (commit)
      from  9838d0a7fb22277caaa19f7e00a59ec6905aca45 (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 2c6ae1f63d3e3f66e06b15d275db0c688a974480
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Wed Dec 28 13:57:43 2016 -0600

    73085: Enable credit card/ach encryption on a live system [handling for custnum-less cust_pay_pending]

diff --git a/FS/FS/cust_main.pm b/FS/FS/cust_main.pm
index 493b1c6..ee570da 100644
--- a/FS/FS/cust_main.pm
+++ b/FS/FS/cust_main.pm
@@ -5407,6 +5407,9 @@ sub queueable_upgrade {
         # window for possible conflict is practically nonexistant,
         #   but just in case...
         $record = $record->select_for_update;
+        if (!$record->custnum && $table eq 'cust_pay_pending') {
+          $record->set('custnum_pending',1);
+        }
         my $error = $record->replace;
         die $error if $error;
       }

commit df92ab34778ae931caeaf87daa9c763e75feeede
Author: Jonathan Prykop <jonathan at freeside.biz>
Date:   Wed Dec 28 13:56:31 2016 -0600

    71513: Card tokenization [undid refund always sending token, skip token_check if nothing is tokenizable]

diff --git a/FS/FS/cust_main/Billing_Realtime.pm b/FS/FS/cust_main/Billing_Realtime.pm
index 59792e7..5d376e6 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');
@@ -2414,8 +2408,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',
@@ -2427,18 +2422,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,

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/cust_main.pm                  |    3 +++
 FS/FS/cust_main/Billing_Realtime.pm |   23 +++++++++++++----------
 2 files changed, 16 insertions(+), 10 deletions(-)




More information about the freeside-commits mailing list