[freeside-commits] branch master updated. 13f21e01ac9faa50c07f64c20cbceae0ae50790c

Mark Wells mark at 420.am
Tue Apr 22 17:54:37 PDT 2014


The branch, master has been updated
       via  13f21e01ac9faa50c07f64c20cbceae0ae50790c (commit)
      from  16fde520a71f364cc8c941290ab293b6d7cd98ef (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 13f21e01ac9faa50c07f64c20cbceae0ae50790c
Author: Mark Wells <mark at freeside.biz>
Date:   Tue Apr 22 17:53:01 2014 -0700

    fix certain problems with third-party payment, #23579

diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index a1004d0..49e8bd7 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -2232,7 +2232,7 @@ sub tables_hashref {
 
         'pkgnum', 'int', 'NULL', '', '', '', #desired pkgnum for pkg-balances
         'status',       'varchar',     '', $char_d, '', '', 
-        'session_id',   'varchar', 'NULL', $char_d, '', '', #only need 32
+        'session_id',   'varchar', 'NULL', 1024, '', '', # SHA-512-hex
         'statustext',   'text',    'NULL',  '', '', '', 
         'gatewaynum',   'int',     'NULL',  '', '', '',
         #'cust_balance', @money_type,            '', '',
diff --git a/FS/FS/agent.pm b/FS/FS/agent.pm
index 796a160..0bb7561 100644
--- a/FS/FS/agent.pm
+++ b/FS/FS/agent.pm
@@ -248,8 +248,27 @@ sub payment_gateway {
     # seeing the card number
     my $gatewaynum =
       $conf->config('selfservice-payment_gateway', $self->agentnum);
-    my $gateway = FS::payment_gateway->by_key($gatewaynum)
-      if $gatewaynum;
+    my $gateway;
+    $gateway = FS::payment_gateway->by_key($gatewaynum) if $gatewaynum;
+    return $gateway if $gateway;
+
+    # a little less kludgey than the above, and allows PayPal to coexist 
+    # with credit card gateways
+    my $is_paypal = { op => '!=', value => 'PayPal' };
+    if ( uc($options{method}) eq 'PAYPAL' ) {
+      $is_paypal = 'PayPal';
+    }
+
+    $gateway = qsearchs({
+        table     => 'payment_gateway',
+        addl_from => ' JOIN agent_payment_gateway USING (gatewaynum) ',
+        hashref   => {
+          gateway_namespace => 'Business::OnlineThirdPartyPayment',
+          gateway_module    => $is_paypal,
+          disabled          => '',
+        },
+        extra_sql => ' AND agentnum = '.$self->agentnum,
+    });
 
     if ( $gateway ) {
       return $gateway;
diff --git a/ng_selfservice/elements/post_thirdparty.php b/ng_selfservice/elements/post_thirdparty.php
index a543be9..c0b1015 100644
--- a/ng_selfservice/elements/post_thirdparty.php
+++ b/ng_selfservice/elements/post_thirdparty.php
@@ -1,7 +1,10 @@
 <?
 if ( $payment_results['error'] ) {
   // an error at this stage isn't meaningful to the user
+  // but make sure it's logged
+  error_log("[start_thirdparty] $error");
   $error = 'Internal error communicating with payment processor.';
+  include('error.php');
 } elseif ( isset($payment_results['url']) ) {
   $url = $payment_results['url'];
 ?>
diff --git a/ng_selfservice/freeside.class.php b/ng_selfservice/freeside.class.php
index 9815d3f..ee77ce0 100644
--- a/ng_selfservice/freeside.class.php
+++ b/ng_selfservice/freeside.class.php
@@ -59,6 +59,8 @@ class FreesideSelfService  {
         )));
         $file = file_get_contents($this->URL, false, $context);
         $response = xmlrpc_decode($file);
+        // uncomment to trace everything
+        //error_log(print_r($response, true));
         if (xmlrpc_is_fault($response)) {
             trigger_error("[FreesideSelfService] XML-RPC communication error: $response[faultString] ($response[faultCode])");
         } else {

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

Summary of changes:
 FS/FS/Schema.pm                             |    2 +-
 FS/FS/agent.pm                              |   23 +++++++++++++++++++++--
 ng_selfservice/elements/post_thirdparty.php |    3 +++
 ng_selfservice/freeside.class.php           |    2 ++
 4 files changed, 27 insertions(+), 3 deletions(-)




More information about the freeside-commits mailing list