5 use POSIX qw(strftime);
8 use Business::OnlinePayment;
11 "to test set environment variables:"
12 . " (required) VIAKLIX_ACCOUNT, VIAKLIX_USERID, and VIAKLIX_PASSWORD";
15 ( $ENV{"VIAKLIX_ACCOUNT"}
16 && $ENV{"VIAKLIX_USERID"}
17 && $ENV{"VIAKLIX_PASSWORD"} )
19 : ( skip_all => $runinfo )
24 "default_ssl_user_id" => $ENV{"VIAKLIX_USERID"},
25 "default_ssl_salestax" => "0.00",
26 "default_ssl_customer_code" => "TESTCUSTOMER",
30 login => $ENV{"VIAKLIX_ACCOUNT"},
31 password => $ENV{"VIAKLIX_PASSWORD"},
32 action => "Normal Authorization",
34 description => "Business::OnlinePayment::viaKLIX test",
35 card_number => "4111111111111111",
37 expiration => "12/" . strftime( "%y", localtime ),
39 invoice_number => "Test1",
42 email => 'viaklix@weasellips.com',
43 address => "123 Anystreet",
50 { # valid card number test
51 my $tx = new Business::OnlinePayment( "viaKLIX", %opts );
52 $tx->content(%content);
55 desc => "valid card_number",
58 authorization => "123456",
61 order_number => "00000000-0000-0000-0000-000000000000",
65 { # invalid card number test
67 my $tx = new Business::OnlinePayment( "viaKLIX", %opts );
68 $tx->content( %content, card_number => "4111111111111112" );
71 desc => "invalid card_number",
74 authorization => undef,
76 cvv2_response => undef,
77 order_number => undef,
82 SKIP: { # avs_code() / AVSZIP and AVSADDR tests
84 skip "AVS tests broken", 18;
86 my $tx = new Business::OnlinePayment( "viaKLIX", %opts );
88 $tx->content( %content, "address" => "500 Any street" );
91 desc => "AVSADDR=N,AVSZIP=Y",
94 authorization => "123456",
97 order_number => "00000000-0000-0000-0000-000000000000",
100 $tx = new Business::OnlinePayment( "viaKLIX", %opts );
101 $tx->content( %content, "zip" => "99999" );
104 desc => "AVSADDR=Y,AVSZIP=N",
107 authorization => "123456",
109 cvv2_response => "P",
110 order_number => "00000000-0000-0000-0000-000000000000",
113 $tx = new Business::OnlinePayment( "viaKLIX", %opts );
114 $tx->content( %content, "address" => "500 Any street", "zip" => "99999" );
117 desc => "AVSADDR=N,AVSZIP=N",
120 authorization => "123456",
122 cvv2_response => "P",
123 order_number => "00000000-0000-0000-0000-000000000000",
127 SKIP: { # cvv2_response() / CVV2MATCH
129 skip "CVV2 tests broken", 6;
131 my $tx = new Business::OnlinePayment( "viaKLIX", %opts );
133 $tx->content( %content, "cvv2" => "301" );
136 desc => "wrong cvv2",
139 authorization => "123456",
141 cvv2_response => "N",
142 order_number => "00000000-0000-0000-0000-000000000000",
147 SKIP: { # refund test
149 skip "credit/refund tests broken", 6;
151 my $tx = new Business::OnlinePayment( "viaKLIX", %opts );
152 $tx->content( %content, 'action' => "Credit",
153 'card_number' => "4444333322221111",
157 desc => "refund/credit",
160 authorization => undef,
162 cvv2_response => undef,
163 order_number => "00000000-0000-0000-0000-000000000000",
171 $tx->test_transaction(1);
174 is( $tx->is_success, $o{is_success}, "$o{desc}: " . tx_info($tx) );
175 is( $tx->result_code, $o{result_code}, "result_code(): RESULT" );
176 is( $tx->authorization, $o{authorization}, "authorization() / AUTHCODE" );
177 is( $tx->avs_code, $o{avs_code}, "avs_code() / AVSADDR and AVSZIP" );
178 is( $tx->cvv2_response, $o{cvv2_response}, "cvv2_response() / CVV2MATCH" );
179 is( $tx->order_number, $o{order_number}, "order_number() / PNREF" );
185 no warnings 'uninitialized';
189 "is_success(", $tx->is_success, ")",
190 " order_number(", $tx->order_number, ")",
191 " result_code(", $tx->result_code, ")",
192 " auth_info(", $tx->authorization, ")",
193 " avs_code(", $tx->avs_code, ")",
194 " cvv2_response(", $tx->cvv2_response, ")",