X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fedit%2Fpayment_gateway.html;h=f9b8f2415b0ec609c70f1079a29f68ba3b4d667b;hb=c6d8896d882b684b1f3c7a2538a90358b27aaf89;hp=e3893cf492508065d1521d9819cd30bf4ac95ace;hpb=5e05724a635a22776f1b973f5d7e77989da4e048;p=freeside.git
diff --git a/httemplate/edit/payment_gateway.html b/httemplate/edit/payment_gateway.html
index e3893cf49..f9b8f2415 100644
--- a/httemplate/edit/payment_gateway.html
+++ b/httemplate/edit/payment_gateway.html
@@ -1,132 +1,200 @@
-<% include("/elements/header.html","$action Payment gateway", menubar(
- 'View all payment gateways' => $p. 'browse/payment_gateway.html',
-)) %>
-
-<% include('/elements/error.html') %>
-
-
-
-<% include('/elements/footer.html') %>
+<% include( 'elements/edit.html',
+ 'table' => 'payment_gateway',
+ 'name_singular' => 'Payment gateway',
+ 'viewall_dir' => 'browse',
+ 'fields' => $fields,
+ 'field_callback' => $field_callback,
+ 'labels' => {
+ 'gatewaynum' => 'Gateway',
+ 'gateway_namespace' => 'Gateway type',
+ 'gateway_module' => 'Gateway',
+ 'gateway_username' => 'Username',
+ 'gateway_password' => 'Password',
+ 'gateway_action' => 'Action',
+ 'gateway_options' => 'Options (Name/Value pairs,
one element per line)',
+ 'gateway_callback_url' => 'Callback URL',
+ 'gateway_cancel_url' => 'Cancel URL',
+ },
+ )
+%>
+
+
+
<%init>
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
-my $payment_gateway;
-if ( $cgi->param('error') ) {
- $payment_gateway = new FS::payment_gateway ( {
- map { $_, scalar($cgi->param($_)) } fields('payment_gateway')
- } );
-} elsif ( $cgi->keywords ) {
- my($query) = $cgi->keywords;
- $query =~ /^(\d+)$/;
- $payment_gateway = qsearchs( 'payment_gateway', { 'gatewaynum' => $1 } );
-} else { #adding
- $payment_gateway = new FS::payment_gateway {};
-}
-my $action = $payment_gateway->gatewaynum ? 'Edit' : 'Add';
-#my $hashref = $payment_gateway->hashref;
+my $json = Cpanel::JSON::XS->new;
+$json->canonical(1);
+my %modules = (
+ 'Business::OnlinePayment' => [
+ '2CheckOut',
+ 'AuthorizeNet',
+ 'BankOfAmerica', #deprecated?
+ 'Beanstream',
+ 'Braintree',
+ 'Capstone',
+ 'CardFortress',
+ 'Cardstream',
+ 'CashCow',
+ 'CyberSource',
+ 'eSec',
+ 'eSelectPlus',
+ 'ElavonVirtualMerchant',
+ 'eWay',
+ 'Exact',
+ 'FirstDataGlobalGateway',
+ 'GlobalPayments',
+ 'iAuthorizer',
+ 'Ingotz',
+ 'InternetSecure',
+ #'IPaymentTPG',
+ 'IPPay',
+ 'Iridium',
+ 'Jettis',
+ 'Jety',
+ 'LinkPoint',
+ 'Litle',
+ 'MerchantCommerce',
+ 'Network1Financial',
+ 'NMI',
+ 'OCV',
+ 'Ogone',
+ 'OpenECHO',
+ 'PaperlessTrans',
+ 'PayConnect',
+ 'PayflowPro',
+ 'PaymenTech',
+ 'PaymentsGateway',
+ 'PayPal',
+ #'PaySystems',
+ 'PlugnPay',
+ 'PPIPayMover',
+ 'Protx', #now SagePay
+ 'PXPost',
+ 'SagePay',
+ 'SecureHostingUPG',
+ 'Skipjack',
+ 'StGeorge',
+ 'SurePay',
+ 'SynapseGateway',
+ 'TCLink',
+ 'TransactionCentral',
+ 'TransFirsteLink',
+ 'USAePay',
+ 'Vanco',
+ 'viaKLIX',
+ 'VirtualNet',
+ 'vSecureProcessing',
+ 'WesternACH',
+ 'WorldPay',
+ ],
+ 'Business::OnlineThirdPartyPayment' => [
+ #'eWayShared', support currently broken
+ 'FCMB',
+ #'Interswitchng', #incomplete?
+ 'PayPal',
+ ],
+ 'Business::BatchPayment' => [
+ 'BillBuddy',
+ 'CardFortress',
+ 'KeyBank',
+ 'Paymentech',
+ 'RBC',
+ 'TD_EFT',
+ ],
+);
+
+my @actions = (
+ 'Normal Authorization',
+ 'Authorization Only',
+ 'Authorization Only,Post Authorization',
+ );
+
+my $fields = [ {
+ field => 'gateway_namespace',
+ type => 'select',
+ options => [ qw(
+ Business::OnlinePayment
+ Business::BatchPayment
+ Business::OnlineThirdPartyPayment
+ ) ],
+ labels => {
+ 'Business::OnlinePayment' => 'Direct',
+ 'Business::BatchPayment' => 'Batch',
+ 'Business::OnlineThirdPartyPayment' => 'Hosted',
+ },
+ onchange => 'changeNamespace',
+ },
+ {
+ field => 'gateway_module',
+ type => 'select',
+ # does it even make sense to list all modules here?
+ options => [ sort { lc($a) cmp lc($b) }
+ map { @$_ } values %modules ],
+ },
+ 'gateway_username',
+ 'gateway_password',
+ {
+ field => 'gateway_action',
+ type => 'select',
+ options => \@actions,
+ },
+ {
+ field => 'gateway_callback_url',
+ type => 'text',
+ size => 40,
+ },
+ {
+ field => 'gateway_cancel_url',
+ type => 'text',
+ size => 40,
+ },
+ {
+ field => 'gateway_options',
+ type => 'textarea',
+ rows => '12',
+ cols => '40',
+ curr_value_callback => sub { my($cgi, $object, $fref) = @_;
+ join("\r", $object->options );
+ },
+ },
+ ];
+
+my $field_callback = sub {
+ my ($cgi, $object, $field_hashref ) = @_;
+ if ($object->gatewaynum) {
+ if ( $field_hashref->{field} eq 'gateway_module' ) {
+ if ($object->gateway_namespace eq 'Business::OnlinePayment' &&
+ $object->gateway_module ne 'CardFortress'
+ ) {
+ $field_hashref->{options} = [ $object->gateway_module, 'CardFortress' ]
+ } else {
+ $field_hashref->{type} = 'fixed';
+ }
+ } elsif ( $field_hashref->{field} eq 'gateway_namespace' ) {
+ $field_hashref->{type} = 'fixed';
+ $field_hashref->{formatted_value} = $object->namespace_description;
+ }
+ }
+};
%init>