Pass AVS and CVV information
[Business-OnlinePayment-eSelectPlus.git] / t / capture_us.t
1 #!/usr/bin/perl -w
2
3 # B:OP eSelectPlus USA Pre-Auth & Capture
4 # Portions loosely adapted from B:OP AuthorizeNet via B:OP Exact
5
6 use Test::More;
7 plan tests => 5;
8
9 use_ok 'Business::OnlinePayment';
10
11 my $amount;
12 $amount = '1.00';
13 my $order_id;
14 #$order_id  = 'B:OP' . time;  # Generate inside B:OP; cf. capture_ca.t
15
16 my $tx = new Business::OnlinePayment("eSelectPlus");
17 $tx->content(
18     login          => 'moot',
19     password       => 'moot',
20     action         => 'Authorization Only',
21 #    order_id       => $order_id,  # Generate inside B:OP
22 #    description    => 'Business::OnlinePayment visa test',
23     amount         => $amount,
24 #    name           => 'eSelectPlus Tester',
25     card_number    => '4242424242424242',
26     expiration     => '12/12',
27     cvv2           => '123',
28     address        => '1234 Tofu Lane',
29     zip            => '543215454',
30 #    invoice_number   => 'freeform',
31 );
32
33 $tx->test_transaction(1); # test, dont really charge
34
35 $tx->submit();
36
37 my $flag =
38     ok($tx->is_success(), 'Pre-Auth') or diag $tx->error_message;
39
40 # note: long
41 # use Data::Dumper;
42 # diag(Dumper $tx);
43
44 my $auth = $tx->authorization;     # TransID
45 my $order_number = $tx->order_number;
46 #$order_id = $tx->order_id;
47 like $auth, qr/\d+/, 'authorization';
48 like $order_number, qr/\d+/, 'order number';
49 #ok $order_id, 'order ID';
50
51 #warn "auth: $auth\n";
52 #warn "order_number: $order_number\n";
53 SKIP: {
54     skip 'Need pre-auth success, in order to test capture', 1
55         unless $flag;
56
57 my $settle_tx = new Business::OnlinePayment("eSelectPlus");
58 $settle_tx->content(
59     login          => 'moot',
60     password       => 'moot',
61     action         => 'Post Authorization',
62 #    description    => 'Business::OnlinePayment visa test',
63     amount         => $amount,
64     authorization  => $auth,
65 #    order_id       => $order_id,
66     order_number   => $order_number,
67 #    name           => 'eSelectPlus Tester',
68 #    card_number    => '4242424242424242',  # not required
69 #    expiration     => '12/12',
70 );
71
72 $settle_tx->test_transaction(1); # test, dont really charge
73 $settle_tx->submit();
74
75 ok($settle_tx->is_success(), 'Capture') || diag $settle_tx->error_message;
76 }  # /skip or test