% 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';
}
}
};
%init>