summaryrefslogtreecommitdiff
path: root/FS/FS/payment_gateway.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/payment_gateway.pm')
-rw-r--r--FS/FS/payment_gateway.pm49
1 files changed, 48 insertions, 1 deletions
diff --git a/FS/FS/payment_gateway.pm b/FS/FS/payment_gateway.pm
index 35b4f08..bc8b875 100644
--- a/FS/FS/payment_gateway.pm
+++ b/FS/FS/payment_gateway.pm
@@ -1,12 +1,14 @@
package FS::payment_gateway;
use strict;
-use vars qw( @ISA );
+use vars qw( @ISA $me $DEBUG );
use FS::Record qw( qsearch qsearchs dbh );
use FS::option_Common;
use FS::agent_payment_gateway;
@ISA = qw( FS::option_Common );
+$me = '[ FS::payment_gateway ]';
+$DEBUG=0;
=head1 NAME
@@ -37,6 +39,8 @@ currently supported:
=item gatewaynum - primary key
+=item gateway_namespace - Business::OnlinePayment or Business::OnlineThirdPartyPayment
+
=item gateway_module - Business::OnlinePayment:: module name
=item gateway_username - payment gateway username
@@ -110,8 +114,12 @@ sub check {
my $error =
$self->ut_numbern('gatewaynum')
|| $self->ut_alpha('gateway_module')
+ || $self->ut_enum('gateway_namespace', ['Business::OnlinePayment',
+ 'Business::OnlineThirdPartyPayment',
+ ] )
|| $self->ut_textn('gateway_username')
|| $self->ut_anything('gateway_password')
+ || $self->ut_textn('gateway_callback_url') # a bit too permissive
|| $self->ut_enum('disabled', [ '', 'Y' ] )
#|| $self->ut_textn('gateway_action')
;
@@ -131,6 +139,10 @@ sub check {
$self->gateway_action('Normal Authorization');
}
+ # this little kludge mimics FS::CGI::popurl
+ $self->gateway_callback_url($self->gateway_callback_url. '/')
+ if ( $self->gateway_callback_url && $self->gateway_callback_url !~ /\/$/ );
+
$self->SUPER::check;
}
@@ -186,6 +198,41 @@ sub disable {
}
+=item namespace_description
+
+returns a friendly name for the namespace
+
+=cut
+
+my %namespace2description = (
+ '' => 'Direct',
+ 'Business::OnlinePayment' => 'Direct',
+ 'Business::OnlineThirdPartyPayment' => 'Hosted',
+);
+
+sub namespace_description {
+ $namespace2description{shift->gateway_namespace} || 'Unknown';
+}
+
+# _upgrade_data
+#
+# Used by FS::Upgrade to migrate to a new database.
+#
+#
+
+sub _upgrade_data {
+ my ($class, %opts) = @_;
+ my $dbh = dbh;
+
+ warn "$me upgrading $class\n" if $DEBUG;
+
+ foreach ( qsearch( 'payment_gateway', { 'gateway_namespace' => '' } ) ) {
+ $_->gateway_namespace('Business::OnlinePayment'); #defaulting
+ my $error = $_->replace;
+ die "$class had error during upgrade replacement: $error" if $error;
+ }
+}
+
=back
=head1 BUGS