50aa857d5705d8e3e453c86f853b0abcd3129ee5
[Business-OnlinePayment-vSecureProcessing.git] / extra / test.pl
1 #!/usr/bin/perl -w
2
3 #
4 # Make sure to copy Business::OnlinePayment::vSecureProcessing into its
5 # proper system directory (aka /usr/share/perl5/Business/Onlinepayment)
6 #
7
8 use strict;
9 use Data::Dumper;
10 use Business::OnlinePayment;
11
12 my %opt = (
13     server =>'dvrotsos2.kattare.com',
14     platform => 'Buypass',
15     gid => '1432479912596791',
16     tid => '01',
17     userid=> 'tom@yiptv.com',
18     port => 443,
19     env => 'test'
20 );
21
22 my $action = shift || 'Normal Authorization';
23 my $auth = shift || '';
24
25
26 my %content = (
27     appid          => 'yiptv',
28     action         => $action,
29     auth           => $auth,
30     description    => 'Business::OnlinePayment visa test',
31 #    card_number    => '4007000000027',
32     card_number    => '4111111111111111',
33     cvv2           => '111',
34     expiration     => expiration_date(),
35     amount         => '42.24',
36     name           => 'Murphy Law',
37     email          => 'fake@acme.com',
38     address        => '123 Anystreet',
39     zip            => '84058',
40 );
41
42 main();
43
44 sub main {
45     my $transaction = Business::OnlinePayment->new("vSecureProcessing", %opt);
46     
47     print "MAKING PAYMENT\n";
48     ProcessTransaction($transaction);
49     $content{'action'} = 'void';
50     $content{'ref_num'} = $transaction->authorization();
51     $content{'txn_date'} = $transaction->txn_date();
52     $content{'amount'} = $transaction->txn_amount;
53     print "VOIDING PAYMENT\n";
54     ProcessTransaction($transaction);
55     $content{'action'} = 'Normal Authorization';
56     $content{'amount'} = '30.00';
57     print "MAKING PAYMENT\n";
58     ProcessTransaction($transaction);
59     $content{'action'} = 'credit';
60     $content{'ref_num'} = $transaction->authorization;
61     $content{'txn_date'} = $transaction->txn_date;
62     $content{'amount'} = $transaction->txn_amount;
63     print "REFUNDING PAYMENT\n";
64     ProcessTransaction($transaction);
65 }
66
67 sub ProcessTransaction {
68     my $transaction = shift;
69     #print "Processing transaction with content:\n".Dumper(\%content)."\n";
70     $transaction->content(%content);
71
72     eval { $transaction->submit(); };
73
74     if ( $@ ) {
75     
76     die "Error: $@\n";
77     
78     } else {
79     
80         if ( $transaction->is_success() ) {
81             print "Card processed successfully: ". $transaction->authorization()."\n";
82         } else {
83             print "Card was rejected: ". $transaction->error_message(). "\n";
84         }
85     }
86 }
87
88
89 sub expiration_date {
90     my($month, $year) = (localtime)[4,5];
91     $month += 1;
92     $year++;       # So we expire next year.
93     $year %= 100;  # y2k?  What's that?
94
95     return sprintf("%02d/%02d", $month, $year);
96 }