0.02 fixes for postauth/refund/void
authorivan <ivan>
Tue, 11 Oct 2005 00:57:05 +0000 (00:57 +0000)
committerivan <ivan>
Tue, 11 Oct 2005 00:57:05 +0000 (00:57 +0000)
Changes
lib/Business/OnlinePayment/Capstone.pm
t/bad_card.t
t/crypt_bad_card.t

diff --git a/Changes b/Changes
index 7ab03fe..33c3c6a 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,9 @@
 Revision history for Perl extension Business::OnlinePayment::Capstone.
 
+0.02  Mon Oct 10 17:46:23 PDT 2005
+       - fix required fields for postauth/void/return,
+         should fix "unparsable expiration" error on refunds
+
 0.01  Thu Aug 18 01:43:39 2005
        - original version; created by h2xs 1.23 with options
                -X -b 5.5.0 -n Business::OnlinePayment::Capstone -v 0.01
index ed645bb..6302592 100644 (file)
@@ -9,7 +9,7 @@ use Business::OnlinePayment::HTTPS 0.03;
 use vars qw($VERSION $DEBUG @ISA);\r
 \r
 @ISA = qw(Business::OnlinePayment::HTTPS);\r
-$VERSION = '0.01';\r
+$VERSION = '0.02';\r
 $DEBUG = 0;\r
 \r
 sub set_defaults {\r
@@ -65,14 +65,12 @@ sub submit {
         custom0             => 'description',\r
       );\r
 \r
-\r
         #                => 'order_type',\r
         #                => 'transaction_type',\r
 \r
         #authorization   => \r
 \r
         #company         =>\r
-        #country         =>\r
         #phone            => \r
         #fax             =>\r
 \r
@@ -80,45 +78,40 @@ sub submit {
         #customer_id     =>\r
         #authorization    => 'txn_number'\r
 \r
-    # XXXfix check required fields!\r
-#    if ( $action =~ /^(purchase|preauth|ind_refund)$/ ) {\r
-#\r
-#      $self->required_fields(\r
-#        qw( login password amount card_number expiration )\r
-#      );\r
-#\r
+    if ( $action =~ /^auth(postauth)?$/ ) {\r
+\r
+      $self->required_fields(qw(\r
+                                 login password action amount\r
+                                 name address city state zip\r
+                                 email\r
+                                 card_number expiration cvv2\r
+                            ));\r
+\r
       $self->{_content}{'expiration'} =~ /^(\d+)\D+\d*(\d{2})$/\r
-        or croak "unparsable expiration ". $self->{_content}{expiration};\r
+        or croak "unparsable expiration: ". $self->{_content}{expiration};\r
       my( $month, $year ) = ( $1, $2 );\r
       $month = '0'. $month if $month =~ /^\d$/;\r
       $self->{_content}{card_exp} = $month.$year;\r
 \r
       if ( $self->{_content}{'card_start'} ) {\r
         $self->{_content}{'card_start'} =~ /^(\d+)\D+\d*(\d{2})$/\r
-          or croak "unparsable expiration ". $self->{_content}{card_start};\r
+          or croak "unparsable card_start ". $self->{_content}{card_start};\r
         my( $month, $year ) = ( $1, $2 );\r
         $month = '0'. $month if $month =~ /^\d$/;\r
         $self->{_content}{start_date} = $month.$year;\r
       }\r
 \r
-#      $self->generate_order_id;\r
-#\r
 #      $self->{_content}{amount} = sprintf('%.2f', $self->{_content}{amount} );\r
-#\r
-#    } elsif ( $action eq 'completion' || $action eq 'void' ) {\r
-#\r
-#      $self->required_fields( qw( login password order_number authorization ) );\r
-#\r
-#    } elsif ( $action eq 'refund' ) {\r
-#\r
-#      $self->required_fields(\r
-#        qw( login password order_number authorization )\r
-#      );\r
-#\r
-#    }\r
-\r
-    #warn $self->get_fields('zip');\r
-    #warn $self->get_fields('postal');\r
+\r
+    } elsif ( $action =~ /^(postauth|void|return)$/ ) {\r
+\r
+      $self->required_fields(qw(\r
+                                 login password action order_number\r
+                            ));\r
+\r
+    } else {\r
+      die "unknown action $action";\r
+    }\r
 \r
     $self->{'_content'}{country} ||= 'US';\r
 \r
@@ -179,7 +172,7 @@ sub submit {
     if ( $result{'status'} eq 'good' ) {\r
       $self->is_success(1);\r
       $self->authorization( $result{'auth_code'}   );\r
-      $self->order_number(   $result{'orderid'}     );\r
+      $self->order_number(  $result{'orderid'}     );\r
     } elsif ( $result{'status'} =~ /^(bad|error|fraud)$/ ) {\r
       $self->is_success(0);\r
       $self->error_message("$1: ". $result{'status_msg'});\r
index f744c61..b41c71a 100644 (file)
@@ -20,8 +20,16 @@ $tx->content(
     password       => 'testing',
     action         => 'Normal Authorization',
     amount         => '32.32',
-    card_number    => '4242424242424242',
+    card_number    => '4342424242424242',
     expiration     => '08/06',
+    cvv2           => '420',
+    name           => 'Tofu Beast',
+    address        => '123 Anystreet',
+    city           => 'Anywhere',
+    state          => 'UT',
+    zip            => '84058',
+    country        => 'US',
+    email          => 'ivan-capstone-test@420.am',
 );
 $tx->test_transaction(1); # test, dont really charge
 $tx->submit();
index cc36356..1072e2d 100644 (file)
@@ -19,8 +19,16 @@ $tx->content(
     password       => 'testing',
     action         => 'Normal Authorization',
     amount         => '32.32',
-    card_number    => '4242424242424242',
+    card_number    => '4342424242424242',
     expiration     => '08/06',
+    cvv2           => '420',
+    name           => 'Tofu Beast',
+    address        => '123 Anystreet',
+    city           => 'Anywhere',
+    state          => 'UT',
+    zip            => '84058',
+    country        => 'US',
+    email          => 'ivan-capstone-test@420.am',
 );
 $tx->test_transaction(1); # test, dont really charge
 $tx->submit();