use same server for transaction id as transaction itself
[Business-OnlinePayment-IPPay.git] / IPPay.pm
index 00dffd5..65815f0 100644 (file)
--- a/IPPay.pm
+++ b/IPPay.pm
@@ -11,7 +11,7 @@ use vars qw($VERSION $DEBUG @ISA $me);
 
 @ISA = qw(Business::OnlinePayment::HTTPS);
 $VERSION = '0.02';
-$DEBUG = 0;
+$DEBUG = 1;
 $me = 'Business::OnlinePayment::IPPay';
 
 sub set_defaults {
@@ -187,9 +187,20 @@ sub submit {
 
   $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);
+    warn "fetched transaction id: (HTTPS response: $server_response) ".
+         "(HTTPS headers: ".
+         join(", ", map { "$_ => ". $headers{$_} } keys %headers ). ") ".
+         "(Raw HTTPS content: $page)"
+      if $DEBUG;
     return unless $server_response=~ /^200/;
     $transaction_id = $page;
   }
@@ -311,12 +322,6 @@ sub submit {
   $writer->endTag('JetPay');
   $writer->end();
 
-  if ($self->test_transaction()) {
-    $self->server('test1.jetpay.com');
-    $self->port('443');
-    $self->path('/jetpay');
-  }
-
   warn "$post_data\n" if $DEBUG;
 
   my ($page,$server_response,%headers) = $self->https_post($post_data);