Getting code ready for CPAN and debian relase.
[Business-OnlinePayment-vSecureProcessing.git] / extra / test.pl
diff --git a/extra/test.pl b/extra/test.pl
new file mode 100755 (executable)
index 0000000..bca3628
--- /dev/null
@@ -0,0 +1,96 @@
+#!/usr/bin/perl -w
+
+#
+# Make sure to copy Business::OnlinePayment::vSecureProcessing into its
+# proper system directory (aka /usr/share/perl5/Business/Onlinepayment)
+#
+
+use strict;
+use Data::Dumper;
+use Business::OnlinePayment;
+
+my %opt = (
+    server =>'dvrotsos2.kattare.com',
+    platform => 'Buypass',
+    gid => '1432479912596791',
+    tid => '01',
+    userid=> 'tom@yiptv.com',
+    port => 443,
+    env => 'test'
+);
+
+my $action = shift || 'Normal Authorization';
+my $auth = shift || '';
+
+
+my %content = (
+    appid          => 'yiptv',
+    action         => $action,
+    auth           => $auth,
+    description    => 'Business::OnlinePayment visa test',
+#    card_number    => '4007000000027',
+    card_number    => '4111111111111111',
+    cvv2           => '111',
+    expiration     => expiration_date(),
+    amount         => '42.24',
+    name           => 'Murphy Law',
+    email          => 'fake@acme.com',
+    address        => '123 Anystreet',
+    zip            => '84058',
+);
+
+main();
+
+sub main {
+    my $transaction = Business::OnlinePayment->new("vSecureProcessing", %opt);
+    
+    print "MAKING PAYMENT\n";
+    ProcessTransaction($transaction);
+    $content{'action'} = 'void';
+    $content{'ref_num'} = $transaction->authorization();
+    $content{'txn_date'} = $transaction->txn_date();
+    $content{'amount'} = $transaction->txn_amount;
+    print "VOIDING PAYMENT\n";
+    ProcessTransaction($transaction);
+    $content{'action'} = 'Normal Authorization';
+    $content{'amount'} = '30.00';
+    print "MAKING PAYMENT\n";
+    ProcessTransaction($transaction);
+    $content{'action'} = 'credit';
+    $content{'ref_num'} = $transaction->authorization;
+    $content{'txn_date'} = $transaction->txn_date;
+    $content{'amount'} = $transaction->txn_amount;
+    print "REFUNDING PAYMENT\n";
+    ProcessTransaction($transaction);
+}
+
+sub ProcessTransaction {
+    my $transaction = shift;
+    print "Processing transaction with content:\n".Dumper(\%content)."\n";
+    $transaction->content(%content);
+
+    eval { $transaction->submit(); };
+
+    if ( $@ ) {
+    
+    die "Error: $@\n";
+    
+    } else {
+    
+        if ( $transaction->is_success() ) {
+            print "Card processed successfully: ". $transaction->authorization()."\n";
+        } else {
+            print "Card was rejected: ". $transaction->error_message(). "\n";
+        }
+    }
+}
+
+
+sub expiration_date {
+    my($month, $year) = (localtime)[4,5];
+    $month += 1;
+    $year++;       # So we expire next year.
+    $year %= 100;  # y2k?  What's that?
+
+    return sprintf("%02d/%02d", $month, $year);
+}