<% include( 'elements/edit.html', 'table' => 'payment_gateway', 'name_singular' => 'Payment gateway', 'viewall_dir' => 'browse', 'fields' => $fields, 'field_callback' => $field_callback, 'labels' => { 'gatewaynum' => 'Gateway #', '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', }, ) %> <%init> 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', '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 @actions = ( 'Normal Authorization', 'Authorization Only', 'Authorization Only, Post Authorization', ); my $fields = [ { field => 'gateway_namespace', type => 'hidden', curr_value_callback => sub { my($cgi, $object, $fref) = @_; $modules{$object->gateway_module} || 'Business::OnlinePayment' }, }, { field => 'gateway_module', type => 'select', options => [ sort { lc($a) cmp lc ($b) } keys %modules ], onchange => 'setNamespace', }, 'gateway_username', 'gateway_password', { field => 'gateway_action', type => 'select', options => \@actions, }, 'gateway_callback_url', { field => 'gateway_options', type => 'textarea', 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' ) { $field_hashref->{type} = 'fixed'; } } };