use vars qw($VERSION $DEBUG @ISA $me);
@ISA = qw(Business::OnlinePayment::HTTPS);
-$VERSION = '0.05_02';
+$VERSION = '0.07';
$VERSION = eval $VERSION; # modperlstyle: convert the string into a number
$DEBUG = 0;
'Post Authorization',
'Void',
'Credit',
+ 'Reverse Authorization',
],
'ECHECK' => [
'Normal Authorization',
my %opts = @_;
# standard B::OP methods/data
- $self->server('gateway17.jetpay.com') unless $self->server;
+ $self->server('gtwy.ippay.com') unless $self->server;
$self->port('443') unless $self->port;
- $self->path('/jetpay') unless $self->path;
+ $self->path('/ippay') unless $self->path;
$self->build_subs(qw( order_number avs_code cvv2_response
response_page response_code response_headers
( 'normal authorization' => 'SALE',
'authorization only' => 'AUTHONLY',
'post authorization' => 'CAPT',
+ 'reverse authorization' => 'REVERSEAUTH',
'void' => 'VOID',
'credit' => 'CREDIT',
);
'void' => 'VOIDACH',
'credit' => 'REVERSAL',
);
+
if ($self->transaction_type eq 'CC') {
$content{'TransactionType'} = $actions{$action} || $action;
- }elsif ($self->transaction_type eq 'ECHECK') {
- $content{'TransactionType'} = $check_actions{$action} || $action;
- }
+ } elsif ($self->transaction_type eq 'ECHECK') {
+ $content{'TransactionType'} = $check_actions{$action} || $action;
- # ACCOUNT TYPE MAP
- my %account_types = ('personal checking' => 'Checking',
- 'personal savings' => 'Savings',
- 'business checking' => 'BusinessCk',
- );
- $content{'account_type'} = $account_types{lc($content{'account_type'})}
- || $content{'account_type'};
+ # ACCOUNT TYPE MAP
+ my %account_types = ('personal checking' => 'Checking',
+ 'personal savings' => 'Savings',
+ 'business checking' => 'BusinessCk',
+ );
+ $content{'account_type'} = $account_types{lc($content{'account_type'})}
+ || $content{'account_type'};
+ }
$content{Origin} = 'RECURRING'
if ($content{recurring_billing} &&$content{recurring_billing} eq 'YES' );
}elsif ( $action eq 'post authorization' && $type eq 'CC') {
push @required_fields, qw( order_number );
+ }elsif ( $action eq 'reverse authorization' && $type eq 'CC') {
+ push @required_fields, qw( order_number card_number expiration amount );
}elsif ( $action eq 'void') {
push @required_fields, qw( order_number amount );
foreach ( keys ( %{($self->{_defaults})} ) ) {
$content{$_} = $self->{_defaults}->{$_} unless exists($content{$_});
}
+ if ($self->test_transaction()) {
+ $content{'login'} = 'TESTTERMINAL';
+ }
$self->content(%content);
$self->required_fields(@required_fields);
}
}
- if ($self->test_transaction()) {
- $self->server('test1.jetpay.com');
- $self->port('443');
- $self->path('/jetpay');
- }
-
my $transaction_id = $content{'order_number'};
unless ($transaction_id) {
my ($page, $server_response, %headers) = $self->https_get('dummy' => 1);
Phone => 'phone',
);
}
+ delete $shippingaddr{Country} unless $shippingaddr{Country};
tie my %shippinginfo, 'Tie::IxHash',
$self->revmap_fields(
IndustryInfo => \%industryinfo,
ShippingInfo => \%shippinginfo,
);
+ delete $req{BillingCountry} unless $req{BillingCountry};
my $post_data;
my $writer = new XML::Writer( OUTPUT => \$post_data,
if ( exists($response->{ActionCode}) && !exists($response->{ErrMsg})) {
$self->error_message($response->{ResponseText});
}else{
- $self->error_message($response->{Errmsg});
+ $self->error_message($response->{ErrMsg});
}
# }else{
# $self->error_message("Server Failed");
normal authorization
authorization only
+ reverse authorization
post authorization
credit
void
=head1 COMPATIBILITY
+Version 0.07 changes the server name and path for IPPay's late 2012 update.
+
Business::OnlinePayment::IPPay uses IPPay XML Product Specifications version
1.1.2.
See http://www.ippay.com/ for more information.
-=head1 AUTHOR
+=head1 AUTHORS
+
+Original author: Jeff Finucane
+
+Current maintainer: Ivan Kohler <ivan-ippay@freeside.biz>
-Jeff Finucane, ippay@weasellips.com
+Reverse Authorization patch from dougforpres
=head1 SEE ALSO