0.03
authorivan <ivan>
Tue, 1 Mar 2011 21:40:25 +0000 (21:40 +0000)
committerivan <ivan>
Tue, 1 Mar 2011 21:40:25 +0000 (21:40 +0000)
15 files changed:
Changes
MANIFEST
eSelectPlus.pm
t/bad_card.t [deleted file]
t/bad_card_ca.t [new file with mode: 0644]
t/bad_card_us.t [new file with mode: 0644]
t/credit_card.t [deleted file]
t/credit_card_ca.t [new file with mode: 0644]
t/credit_card_us.t [new file with mode: 0644]
t/crypt_bad_card.t [deleted file]
t/crypt_bad_card_ca.t [new file with mode: 0644]
t/crypt_bad_card_us.t [new file with mode: 0644]
t/crypt_credit_card.t [deleted file]
t/crypt_credit_card_ca.t [new file with mode: 0644]
t/crypt_credit_card_us.t [new file with mode: 0644]

diff --git a/Changes b/Changes
index bd61635..15dbf93 100644 (file)
--- 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'
 
index 7835541..557efb5 100644 (file)
--- 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)
index 6223c17..677771a 100644 (file)
@@ -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<Business::OnlinePayment>.
 
-=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 (file)
index f1fc9d6..0000000
+++ /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 (file)
index 0000000..5ea0284
--- /dev/null
@@ -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 (file)
index 0000000..835f251
--- /dev/null
@@ -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 (file)
index 6843155..0000000
+++ /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 (file)
index 0000000..a0d5835
--- /dev/null
@@ -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 (file)
index 0000000..a857ae3
--- /dev/null
@@ -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 (file)
index 1db7c4b..0000000
+++ /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 (file)
index 0000000..bac5491
--- /dev/null
@@ -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 (file)
index 0000000..27d7df0
--- /dev/null
@@ -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 (file)
index a9080c0..0000000
+++ /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 (file)
index 0000000..1edf4a5
--- /dev/null
@@ -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 (file)
index 0000000..0fee506
--- /dev/null
@@ -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";
+}
+