From: ivan Date: Tue, 1 Mar 2011 21:40:25 +0000 (+0000) Subject: 0.03 X-Git-Url: http://git.freeside.biz/gitweb/?p=Business-OnlinePayment-eSelectPlus.git;a=commitdiff_plain;h=c68ddf7bf88ab9a2c8c3b5fbb90f48b7b81828bf 0.03 --- diff --git a/Changes b/Changes index bd61635..15dbf93 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,6 @@ Revision history for Perl extension Business::OnlinePayment::eSelectPlus -0.03 unreleased +0.03 Tue Mar 1 13:40:08 PST 2011 - Update for compatibility with US Moneris. Backwards-compatibility note: Users of previous versions must now specify 'currency'=>'CAD' diff --git a/MANIFEST b/MANIFEST index 7835541..557efb5 100644 --- a/MANIFEST +++ b/MANIFEST @@ -5,9 +5,13 @@ eSelectPlus.pm README t/load.t t/crypt_load.t -t/credit_card.t -t/crypt_credit_card.t +t/credit_card_ca.t +t/credit_card_us.t +t/crypt_credit_card_ca.t +t/crypt_credit_card_us.t t/bop.t -t/bad_card.t -t/crypt_bad_card.t +t/bad_card_ca.t +t/bad_card_us.t +t/crypt_bad_card_ca.t +t/crypt_bad_card_us.t META.yml Module meta-data (added by MakeMaker) diff --git a/eSelectPlus.pm b/eSelectPlus.pm index 6223c17..677771a 100644 --- a/eSelectPlus.pm +++ b/eSelectPlus.pm @@ -8,16 +8,23 @@ use Business::OnlinePayment::HTTPS 0.03; use vars qw($VERSION $DEBUG @ISA); @ISA = qw(Business::OnlinePayment::HTTPS); -$VERSION = '0.02'; +$VERSION = '0.03'; $DEBUG = 0; sub set_defaults { my $self = shift; - #$self->server('esqa.moneris.com'); # development - $self->server('www3.moneris.com'); # production + #USD + #$self->server('esplusqa.moneris.com'); # development + $self->server('esplus.moneris.com'); # production + $self->path('/gateway_us/servlet/MpgRequest'); + + ##CAD + ##$self->server('esqa.moneris.com'); # development + #$self->server('www3.moneris.com'); # production + #$self->path('/gateway2/servlet/MpgRequest'); + $self->port('443'); - $self->path('/gateway2/servlet/MpgRequest'); $self->build_subs(qw( order_number avs_code )); # avs_code order_type md5 cvv2_response cavv_response @@ -26,10 +33,24 @@ sub set_defaults { sub submit { my($self) = @_; + if ( $self->{_content}{'currency'} eq 'CAD' ) { + $self->server('www3.moneris.com'); + $self->path('/gateway2/servlet/MpgRequest'); + } else { #sorry, default to USD + $self->server('esplus.moneris.com'); + $self->path('/gateway_us/servlet/MpgRequest'); + } + if ($self->test_transaction) { - $self->server('esqa.moneris.com'); - $self->{_content}{'login'} = 'store2'; # store[123] - $self->{_content}{'password'} = 'yesguy'; + if ( $self->{_content}{'currency'} eq 'CAD' ) { + $self->server('esqa.moneris.com'); + $self->{_content}{'login'} = 'store2'; # store[123] + $self->{_content}{'password'} = 'yesguy'; + } else { #sorry, default to USD + $self->server('esplusqa.moneris.com'); + $self->{_content}{'login'} = 'monusqa002'; # monusqa00[123] + $self->{_content}{'password'} = 'qatoken'; + } } # BOP field => eSelectPlus field @@ -115,6 +136,8 @@ sub submit { # E-Commerce Indicator (see eSelectPlus docs) $self->{_content}{'crypt_type'} ||= 7; + $action = "us_$action" unless $self->{_content}{'currency'} eq 'CAD'; + #no, values aren't escaped for XML. their "mpgClasses.pl" example doesn't #appear to do so, i dunno tie my %fields, 'Tie::IxHash', $self->get_fields( $self->fields ); @@ -272,6 +295,7 @@ Business::OnlinePayment::eSelectPlus - Moneris eSelect Plus backend module for B action => 'Normal Authorization', description => 'Business::OnlinePayment test', amount => '49.95', + currency => 'USD', #or CAD for compatibility with previous releases name => 'Tofu Beast', address => '123 Anystreet', city => 'Anywhere', @@ -315,7 +339,10 @@ Content required: type, login, password, action, amount, card_number, expiration For detailed information see L. -=head1 NOTE +=head1 Note for Canadian merchants upgrading to 0.03 + +As of version 0.03, this module now defaults to the US Moneris. Make sure to +pass currency=>'CAD' for Canadian transactions. =head1 AUTHOR diff --git a/t/bad_card.t b/t/bad_card.t deleted file mode 100644 index f1fc9d6..0000000 --- a/t/bad_card.t +++ /dev/null @@ -1,35 +0,0 @@ -BEGIN {$| = 1; print "1..1\n"; } - -eval "use Net::SSLeay;"; -if ( $@ ) { - print "ok 1 # Skipped: Net::SSLeay is not installed\n"; exit; -} - -use Business::OnlinePayment; - -my $tx = new Business::OnlinePayment("eSelectPlus"); - -#$Business::OnlinePayment::HTTPS::DEBUG = 1; -#$Business::OnlinePayment::HTTPS::DEBUG = 1; -$Business::OnlinePayment::eSelectPlus::DEBUG = 1; -$Business::OnlinePayment::eSelectPlus::DEBUG = 1; - -$tx->content( - type => 'VISA', - login => 'moot', - password => 'moot', - action => 'Normal Authorization', - amount => '0.54', - card_number => '4242424242424242', - expiration => '08/00', -); -$tx->test_transaction(1); # test, dont really charge -$tx->submit(); - -# warn $tx->server_response."\n"; -# warn $tx->error_message. "\n"; -if($tx->is_success()) { - print "not ok 1\n"; -} else { - print "ok 1\n"; -} diff --git a/t/bad_card_ca.t b/t/bad_card_ca.t new file mode 100644 index 0000000..5ea0284 --- /dev/null +++ b/t/bad_card_ca.t @@ -0,0 +1,36 @@ +BEGIN {$| = 1; print "1..1\n"; } + +eval "use Net::SSLeay;"; +if ( $@ ) { + print "ok 1 # Skipped: Net::SSLeay is not installed\n"; exit; +} + +use Business::OnlinePayment; + +my $tx = new Business::OnlinePayment("eSelectPlus"); + +#$Business::OnlinePayment::HTTPS::DEBUG = 1; +#$Business::OnlinePayment::HTTPS::DEBUG = 1; +$Business::OnlinePayment::eSelectPlus::DEBUG = 1; +$Business::OnlinePayment::eSelectPlus::DEBUG = 1; + +$tx->content( + type => 'VISA', + login => 'moot', + password => 'moot', + action => 'Normal Authorization', + amount => '0.54', + currency => 'CAD', + card_number => '4242424242424242', + expiration => '08/00', +); +$tx->test_transaction(1); # test, dont really charge +$tx->submit(); + +# warn $tx->server_response."\n"; +# warn $tx->error_message. "\n"; +if($tx->is_success()) { + print "not ok 1\n"; +} else { + print "ok 1\n"; +} diff --git a/t/bad_card_us.t b/t/bad_card_us.t new file mode 100644 index 0000000..835f251 --- /dev/null +++ b/t/bad_card_us.t @@ -0,0 +1,36 @@ +BEGIN {$| = 1; print "1..1\n"; } + +eval "use Net::SSLeay;"; +if ( $@ ) { + print "ok 1 # Skipped: Net::SSLeay is not installed\n"; exit; +} + +use Business::OnlinePayment; + +my $tx = new Business::OnlinePayment("eSelectPlus"); + +#$Business::OnlinePayment::HTTPS::DEBUG = 1; +#$Business::OnlinePayment::HTTPS::DEBUG = 1; +$Business::OnlinePayment::eSelectPlus::DEBUG = 1; +$Business::OnlinePayment::eSelectPlus::DEBUG = 1; + +$tx->content( + type => 'VISA', + login => 'moot', + password => 'moot', + action => 'Normal Authorization', + amount => '0.54', + currency => 'USD', + card_number => '4242424242424242', + expiration => '08/00', +); +$tx->test_transaction(1); # test, dont really charge +$tx->submit(); + +# warn $tx->server_response."\n"; +# warn $tx->error_message. "\n"; +if($tx->is_success()) { + print "not ok 1\n"; +} else { + print "ok 1\n"; +} diff --git a/t/credit_card.t b/t/credit_card.t deleted file mode 100644 index 6843155..0000000 --- a/t/credit_card.t +++ /dev/null @@ -1,36 +0,0 @@ -BEGIN { $| = 1; print "1..1\n"; } - -eval "use Net::SSLeay;"; -if ( $@ ) { - print "ok 1 # Skipped: Net::SSLeay is not installed\n"; exit; -} - -use Business::OnlinePayment; - -my $tx = new Business::OnlinePayment("eSelectPlus"); - -#$Business::OnlinePayment::HTTPS::DEBUG = 1; -#$Business::OnlinePayment::HTTPS::DEBUG = 1; -$Business::OnlinePayment::eSelectPlus::DEBUG = 1; -$Business::OnlinePayment::eSelectPlus::DEBUG = 1; - -$tx->content( - type => 'VISA', - login => 'moot', - password => 'moot', - action => 'Normal Authorization', - amount => '0.80', - card_number => '4242424242424242', - expiration => '01/12', -); -$tx->test_transaction(1); # test, dont really charge -$tx->submit(); - -if($tx->is_success()) { - print "ok 1\n"; -} else { - warn $tx->server_response."\n"; - warn $tx->error_message. "\n"; - print "not ok 1\n"; -} - diff --git a/t/credit_card_ca.t b/t/credit_card_ca.t new file mode 100644 index 0000000..a0d5835 --- /dev/null +++ b/t/credit_card_ca.t @@ -0,0 +1,37 @@ +BEGIN { $| = 1; print "1..1\n"; } + +eval "use Net::SSLeay;"; +if ( $@ ) { + print "ok 1 # Skipped: Net::SSLeay is not installed\n"; exit; +} + +use Business::OnlinePayment; + +my $tx = new Business::OnlinePayment("eSelectPlus"); + +#$Business::OnlinePayment::HTTPS::DEBUG = 1; +#$Business::OnlinePayment::HTTPS::DEBUG = 1; +$Business::OnlinePayment::eSelectPlus::DEBUG = 1; +$Business::OnlinePayment::eSelectPlus::DEBUG = 1; + +$tx->content( + type => 'VISA', + login => 'moot', + password => 'moot', + action => 'Normal Authorization', + amount => '0.80', + currency => 'CAD', + card_number => '4242424242424242', + expiration => '01/12', +); +$tx->test_transaction(1); # test, dont really charge +$tx->submit(); + +if($tx->is_success()) { + print "ok 1\n"; +} else { + warn $tx->server_response."\n"; + warn $tx->error_message. "\n"; + print "not ok 1\n"; +} + diff --git a/t/credit_card_us.t b/t/credit_card_us.t new file mode 100644 index 0000000..a857ae3 --- /dev/null +++ b/t/credit_card_us.t @@ -0,0 +1,37 @@ +BEGIN { $| = 1; print "1..1\n"; } + +eval "use Net::SSLeay;"; +if ( $@ ) { + print "ok 1 # Skipped: Net::SSLeay is not installed\n"; exit; +} + +use Business::OnlinePayment; + +my $tx = new Business::OnlinePayment("eSelectPlus"); + +#$Business::OnlinePayment::HTTPS::DEBUG = 1; +#$Business::OnlinePayment::HTTPS::DEBUG = 1; +$Business::OnlinePayment::eSelectPlus::DEBUG = 1; +$Business::OnlinePayment::eSelectPlus::DEBUG = 1; + +$tx->content( + type => 'VISA', + login => 'moot', + password => 'moot', + action => 'Normal Authorization', + amount => '0.80', + currency => 'USD', + card_number => '4242424242424242', + expiration => '01/12', +); +$tx->test_transaction(1); # test, dont really charge +$tx->submit(); + +if($tx->is_success()) { + print "ok 1\n"; +} else { + warn $tx->server_response."\n"; + warn $tx->error_message. "\n"; + print "not ok 1\n"; +} + diff --git a/t/crypt_bad_card.t b/t/crypt_bad_card.t deleted file mode 100644 index 1db7c4b..0000000 --- a/t/crypt_bad_card.t +++ /dev/null @@ -1,35 +0,0 @@ -BEGIN { - $| = 1; print "1..1\n"; - $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; - $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; -} - -eval "use Crypt::SSLeay;"; -if ( $@ ) { - print "ok 1 # Skipped: Crypt::SSLeay is not installed\n"; exit; -} - -use Business::OnlinePayment; - -my $tx = new Business::OnlinePayment("eSelectPlus"); - -$tx->content( - type => 'VISA', - login => 'moot', - password => 'moot', - action => 'Normal Authorization', - amount => '0.54', - card_number => '4242424242424242', - expiration => '08/00', -); -$tx->test_transaction(1); # test, dont really charge -$tx->submit(); - -# warn $tx->server_response."\n"; -# warn $tx->error_message. "\n"; -if($tx->is_success()) { - print "not ok 1\n"; -} else { - print "ok 1\n"; -} - diff --git a/t/crypt_bad_card_ca.t b/t/crypt_bad_card_ca.t new file mode 100644 index 0000000..bac5491 --- /dev/null +++ b/t/crypt_bad_card_ca.t @@ -0,0 +1,36 @@ +BEGIN { + $| = 1; print "1..1\n"; + $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; + $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; +} + +eval "use Crypt::SSLeay;"; +if ( $@ ) { + print "ok 1 # Skipped: Crypt::SSLeay is not installed\n"; exit; +} + +use Business::OnlinePayment; + +my $tx = new Business::OnlinePayment("eSelectPlus"); + +$tx->content( + type => 'VISA', + login => 'moot', + password => 'moot', + action => 'Normal Authorization', + amount => '0.54', + currency => 'CAD', + card_number => '4242424242424242', + expiration => '08/00', +); +$tx->test_transaction(1); # test, dont really charge +$tx->submit(); + +# warn $tx->server_response."\n"; +# warn $tx->error_message. "\n"; +if($tx->is_success()) { + print "not ok 1\n"; +} else { + print "ok 1\n"; +} + diff --git a/t/crypt_bad_card_us.t b/t/crypt_bad_card_us.t new file mode 100644 index 0000000..27d7df0 --- /dev/null +++ b/t/crypt_bad_card_us.t @@ -0,0 +1,36 @@ +BEGIN { + $| = 1; print "1..1\n"; + $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; + $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; +} + +eval "use Crypt::SSLeay;"; +if ( $@ ) { + print "ok 1 # Skipped: Crypt::SSLeay is not installed\n"; exit; +} + +use Business::OnlinePayment; + +my $tx = new Business::OnlinePayment("eSelectPlus"); + +$tx->content( + type => 'VISA', + login => 'moot', + password => 'moot', + action => 'Normal Authorization', + amount => '0.54', + currency => 'USD', + card_number => '4242424242424242', + expiration => '08/00', +); +$tx->test_transaction(1); # test, dont really charge +$tx->submit(); + +# warn $tx->server_response."\n"; +# warn $tx->error_message. "\n"; +if($tx->is_success()) { + print "not ok 1\n"; +} else { + print "ok 1\n"; +} + diff --git a/t/crypt_credit_card.t b/t/crypt_credit_card.t deleted file mode 100644 index a9080c0..0000000 --- a/t/crypt_credit_card.t +++ /dev/null @@ -1,34 +0,0 @@ -BEGIN { - $| = 1; print "1..1\n"; - $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; - $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; -} - -eval "use Crypt::SSLeay;"; -if ( $@ ) { - print "ok 1 # Skipped: Crypt::SSLeay is not installed\n"; exit; -} - -use Business::OnlinePayment; - -my $tx = new Business::OnlinePayment("eSelectPlus"); -$tx->content( - type => 'VISA', - login => 'store1', - password => 'yesguy', - action => 'Normal Authorization', - amount => '0.80', - card_number => '4242424242424242', - expiration => '08/06', -); -$tx->test_transaction(1); # test, dont really charge -$tx->submit(); - -if($tx->is_success()) { - print "ok 1\n"; -} else { - #warn $tx->server_response."\n"; - warn $tx->error_message. "\n"; - print "not ok 1\n"; -} - diff --git a/t/crypt_credit_card_ca.t b/t/crypt_credit_card_ca.t new file mode 100644 index 0000000..1edf4a5 --- /dev/null +++ b/t/crypt_credit_card_ca.t @@ -0,0 +1,35 @@ +BEGIN { + $| = 1; print "1..1\n"; + $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; + $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; +} + +eval "use Crypt::SSLeay;"; +if ( $@ ) { + print "ok 1 # Skipped: Crypt::SSLeay is not installed\n"; exit; +} + +use Business::OnlinePayment; + +my $tx = new Business::OnlinePayment("eSelectPlus"); +$tx->content( + type => 'VISA', + login => 'store1', + password => 'yesguy', + action => 'Normal Authorization', + amount => '0.80', + currency => 'CAD', + card_number => '4242424242424242', + expiration => '08/06', +); +$tx->test_transaction(1); # test, dont really charge +$tx->submit(); + +if($tx->is_success()) { + print "ok 1\n"; +} else { + #warn $tx->server_response."\n"; + warn $tx->error_message. "\n"; + print "not ok 1\n"; +} + diff --git a/t/crypt_credit_card_us.t b/t/crypt_credit_card_us.t new file mode 100644 index 0000000..0fee506 --- /dev/null +++ b/t/crypt_credit_card_us.t @@ -0,0 +1,35 @@ +BEGIN { + $| = 1; print "1..1\n"; + $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; + $Business::OnlinePayment::HTTPS::skip_NetSSLeay=1; +} + +eval "use Crypt::SSLeay;"; +if ( $@ ) { + print "ok 1 # Skipped: Crypt::SSLeay is not installed\n"; exit; +} + +use Business::OnlinePayment; + +my $tx = new Business::OnlinePayment("eSelectPlus"); +$tx->content( + type => 'VISA', + login => 'store1', + password => 'yesguy', + action => 'Normal Authorization', + amount => '0.80', + currency => 'USD', + card_number => '4242424242424242', + expiration => '08/06', +); +$tx->test_transaction(1); # test, dont really charge +$tx->submit(); + +if($tx->is_success()) { + print "ok 1\n"; +} else { + #warn $tx->server_response."\n"; + warn $tx->error_message. "\n"; + print "not ok 1\n"; +} +