[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