X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fedit%2Fpayment_gateway.html;h=b44b3151383dbb7a6ce985ef7890b50e515b0440;hp=cfb86048c95355d2eb8a2aa0e9347fdc58d93ae5;hb=b9f68ca7d2a521b037995d1512067ac19cf6db7b;hpb=fb4ab1073f0d15d660c6cdc4e07afebf68ef3924 diff --git a/httemplate/edit/payment_gateway.html b/httemplate/edit/payment_gateway.html index cfb86048c..b44b31513 100644 --- a/httemplate/edit/payment_gateway.html +++ b/httemplate/edit/payment_gateway.html @@ -6,30 +6,32 @@ '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_options' => 'Options (Name/Value pairs,
one element per line)', 'gateway_callback_url' => 'Callback URL', + 'gateway_cancel_url' => 'Cancel URL', }, ) %> <%init> @@ -37,58 +39,86 @@ die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); -my %modules = ( - '2CheckOut' => 'Business::OnlinePayment', - 'AuthorizeNet' => 'Business::OnlinePayment', - 'BankOfAmerica' => 'Business::OnlinePayment', #deprecated? - 'Beanstream' => 'Business::OnlinePayment', - 'Capstone' => 'Business::OnlinePayment', - 'Cardstream' => 'Business::OnlinePayment', - 'CashCow' => 'Business::OnlinePayment', - 'CyberSource' => 'Business::OnlinePayment', - 'eSec' => 'Business::OnlinePayment', - 'eSelectPlus' => 'Business::OnlinePayment', - 'eWayShared' => 'Business::OnlineThirdPartyPayment', - 'ElavonVirtualMerchant' => 'Business::OnlinePayment', - 'Exact' => 'Business::OnlinePayment', - 'iAuthorizer' => 'Business::OnlinePayment', - 'Ingotz' => 'Business::OnlinePayment', - 'InternetSecure' => 'Business::OnlinePayment', - 'Interswitchng' => 'Business::OnlineThirdPartyPayment', - 'IPaymentTPG' => 'Business::OnlinePayment', - 'IPPay' => 'Business::OnlinePayment', - 'Iridium' => 'Business::OnlinePayment', - 'Jettis' => 'Business::OnlinePayment', - 'Jety' => 'Business::OnlinePayment', - 'LinkPoint' => 'Business::OnlinePayment', - 'MerchantCommerce' => 'Business::OnlinePayment', - 'Network1Financial' => 'Business::OnlinePayment', - 'OCV' => 'Business::OnlinePayment', - 'OpenECHO' => 'Business::OnlinePayment', - 'PayConnect' => 'Business::OnlinePayment', - 'PayflowPro' => 'Business::OnlinePayment', - 'PaymenTech' => 'Business::OnlinePayment', - 'PaymentsGateway' => 'Business::OnlinePayment', - 'PayPal' => 'Business::OnlinePayment', - #'PaySystems' => 'Business::OnlinePayment', - 'PlugnPay' => 'Business::OnlinePayment', - 'PPIPayMover' => 'Business::OnlinePayment', - 'Protx' => 'Business::OnlinePayment', #now SagePay - 'PXPost' => 'Business::OnlinePayment', - 'SagePay' => 'Business::OnlinePayment', - 'SecureHostingUPG' => 'Business::OnlinePayment', - 'Skipjack' => 'Business::OnlinePayment', - 'StGeorge' => 'Business::OnlinePayment', - 'SurePay' => 'Business::OnlinePayment', - 'TCLink' => 'Business::OnlinePayment', - 'TransactionCentral' => 'Business::OnlinePayment', - 'TransFirsteLink' => 'Business::OnlinePayment', - 'Vanco' => 'Business::OnlinePayment', - 'viaKLIX' => 'Business::OnlinePayment', - 'VirtualNet' => 'Business::OnlinePayment', - 'WesternACH' => 'Business::OnlinePayment', - 'WorldPay' => 'Business::OnlinePayment', -); +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', @@ -96,20 +126,27 @@ my @actions = ( 'Authorization Only,Post Authorization', ); -my $fields = [ - { +my $fields = [ { field => 'gateway_namespace', - type => 'hidden', - curr_value_callback => sub { my($cgi, $object, $fref) = @_; - $modules{$object->gateway_module} - || 'Business::OnlinePayment' - }, + 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', - options => [ sort { lc($a) cmp lc ($b) } keys %modules ], - onchange => 'setNamespace', + # does it even make sense to list all modules here? + options => [ sort { lc($a) cmp lc($b) } + map { @$_ } values %modules ], }, 'gateway_username', 'gateway_password', @@ -124,8 +161,15 @@ my $fields = [ 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 ); }, @@ -137,6 +181,9 @@ my $field_callback = sub { if ($object->gatewaynum) { if ( $field_hashref->{field} eq 'gateway_module' ) { $field_hashref->{type} = 'fixed'; + } elsif ( $field_hashref->{field} eq 'gateway_namespace' ) { + $field_hashref->{type} = 'fixed'; + $field_hashref->{formatted_value} = $object->namespace_description; } } };