1 # Before `make install' is performed this script should be runnable with
2 # `make test'. After `make install' it should work as `perl eWay.t'
5 require "t/lib/test_account.pl";
7 BEGIN { plan tests => 391, todo => [361,376,382,383,388,389] };
8 use Business::OnlinePayment::USAePay;
10 my %auth = test_account();
13 my ($tx, $txnum, $res);
14 ok($tx = new Business::OnlinePayment("USAePay"));
15 $tx->test_transaction(2);
20 action => 'Normal Authorization',
21 description => 'Business::OnlinePayment test',
23 invoice_number => '100100',
25 card_number => '4005562233445564',
26 expiration => expiration_date(),
27 address => '1234 Bean Curd Lane, San Francisco',
32 ok($tx->is_success());
33 ok($tx->error_message(), 'Approved');
34 ok($tx->authorization(), '/\d{6}/');
35 ok($res = $tx->server_response());
36 ok($txnum = $res->{UMauthCode});
37 ok($res->{UMavsResultCode}, "YYY");
38 ok($res->{UMresult}, "A");
39 ok($res->{UMcvv2Result}, "Not Processed");
40 ok($res->{UMversion}, "2.9");
41 ok($res->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
42 ok($res->{UMrefNum}, qr/^\d+/);
43 ok($res->{UMbatch}, qr/^\d+/);
44 ok($res->{UMerrorcode}, "00000");
45 ok($res->{UMvpasResultCode}, "");
46 ok($res->{UMcvv2ResultCode}, "P");
50 ok(($tx->server_response->{UMauthCode} - $txnum) > 0);
52 # a test transaction with cvn
57 action => 'Normal Authorization',
58 description => 'Business::OnlinePayment test',
60 invoice_number => '100100',
62 card_number => '4005562233445564',
63 expiration => expiration_date(),
65 address => '1234 Bean Curd Lane, San Francisco',
70 ok($tx->is_success());
71 ok($tx->error_message(), 'Approved');
72 ok($tx->authorization(), '/\d{6}/');
73 ok($tx->server_response->{UMcvv2Result}, "No Match"); #"Not Processed");
75 # a failing transaction
80 action => 'Normal Authorization',
81 description => 'Business::OnlinePayment test',
83 invoice_number => '100100',
87 email => 'tofu@example.com',
88 address => '1234 Bean Curd Lane, Sydney',
90 card_number => '4646464646464646',
91 expiration => expiration_date(),
96 #ok($tx->test_transaction(0),0);
97 ok($tx->test_transaction(2),2);
100 ok($tx->is_success(),0);
101 ok($tx->error_message(), 'Invalid Card Number (3)');
102 ok($tx->authorization(), '/\d{6}/');
103 ok($tx->server_response->{UMcvv2Result}, "No CVV2/CVC data available for transaction.");
105 #various test cards; semi-useful testing
106 #Full match avs, zip9 & cvv2
111 action => 'Normal Authorization',
112 description => 'Business::OnlinePayment test',
114 invoice_number => '100100',
115 name => 'Tofu Beast',
116 card_number => '4000100011112224',
117 expiration => expiration_date(),
118 address => '1234 Bean Curd Lane, San Francisco',
124 ok($tx->is_success());
125 ok($tx->error_message(), 'Approved');
126 ok($tx->authorization(), '/\d{6}/');
127 ok($tx->server_response->{UMavsResultCode}, "YYY");
128 ok($tx->server_response->{UMresult}, "A");
129 ok($tx->server_response->{UMcvv2Result}, "Match");
130 ok($tx->server_response->{UMversion}, "2.9");
131 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
132 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
133 ok($tx->server_response->{UMerrorcode}, "00000");
134 ok($tx->server_response->{UMbatch}, qr/^\d+/);
136 #Full match avs, zip9 & cvv2
141 action => 'Normal Authorization',
142 description => 'Business::OnlinePayment test',
144 invoice_number => '100100',
145 name => 'Tofu Beast',
146 card_number => '4000100111112223',
147 expiration => expiration_date(),
148 address => '1234 Bean Curd Lane, San Francisco',
154 ok($tx->is_success());
155 ok($tx->error_message(), 'Approved');
156 ok($tx->authorization(), '/\d{6}/');
157 ok($tx->server_response->{UMavsResultCode}, "YYX");
158 ok($tx->server_response->{UMresult}, "A");
159 ok($tx->server_response->{UMcvv2Result}, "Match");
160 ok($tx->server_response->{UMversion}, "2.9");
161 ok($tx->server_response->{UMavsResult}, "Address: Match & 9 Digit Zip: Match");
162 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
163 ok($tx->server_response->{UMerrorcode}, "00000");
164 ok($tx->server_response->{UMbatch}, qr/^\d+/);
165 ok($tx->server_response->{UMvpasResultCode}, "");
166 ok($tx->server_response->{UMcvv2ResultCode}, "M");
168 #no match avs, match zip5 & cvv2
173 action => 'Normal Authorization',
174 description => 'Business::OnlinePayment test',
176 invoice_number => '100100',
177 name => 'Tofu Beast',
178 card_number => '4000100211112222',
179 expiration => expiration_date(),
180 address => '1234 Bean Curd Lane, San Francisco',
186 ok($tx->is_success());
187 ok($tx->error_message(), 'Approved');
188 ok($tx->authorization(), '/\d{6}/');
189 ok($tx->server_response->{UMavsResultCode}, "NYZ");
190 ok($tx->server_response->{UMresult}, "A");
191 ok($tx->server_response->{UMcvv2Result}, "Match");
192 ok($tx->server_response->{UMversion}, "2.9");
193 ok($tx->server_response->{UMavsResult}, "Address: No Match & 5 Digit Zip: Match");
194 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
195 ok($tx->server_response->{UMerrorcode}, "00000");
196 ok($tx->server_response->{UMbatch}, qr/^\d+/);
197 ok($tx->server_response->{UMvpasResultCode}, "");
198 ok($tx->server_response->{UMcvv2ResultCode}, "M");
200 # no match address, match zip9 & cvv2
205 action => 'Normal Authorization',
206 description => 'Business::OnlinePayment test',
208 invoice_number => '100100',
209 name => 'Tofu Beast',
210 card_number => '4000100311112221',
211 expiration => expiration_date(),
212 address => '1234 Bean Curd Lane, San Francisco',
218 ok($tx->is_success());
219 ok($tx->error_message(), 'Approved');
220 ok($tx->authorization(), '/\d{6}/');
221 ok($tx->server_response->{UMavsResultCode}, "NYW");
222 ok($tx->server_response->{UMresult}, "A");
223 ok($tx->server_response->{UMcvv2Result}, "Match");
224 ok($tx->server_response->{UMversion}, "2.9");
225 ok($tx->server_response->{UMavsResult}, "Address: No Match & 9 Digit Zip: Match");
226 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
227 ok($tx->server_response->{UMerrorcode}, "00000");
228 ok($tx->server_response->{UMbatch}, qr/^\d+/);
229 ok($tx->server_response->{UMvpasResultCode}, "");
230 ok($tx->server_response->{UMcvv2ResultCode}, "M");
232 # match address, no match zip5 & match cvv2
237 action => 'Normal Authorization',
238 description => 'Business::OnlinePayment test',
240 invoice_number => '100100',
241 name => 'Tofu Beast',
242 card_number => '4000100411112220',
243 expiration => expiration_date(),
244 address => '1234 Bean Curd Lane, San Francisco',
250 ok($tx->is_success());
251 ok($tx->error_message(), 'Approved');
252 ok($tx->authorization(), '/\d{6}/');
253 ok($tx->server_response->{UMavsResultCode}, "YNA");
254 ok($tx->server_response->{UMresult}, "A");
255 ok($tx->server_response->{UMcvv2Result}, "Match");
256 ok($tx->server_response->{UMversion}, "2.9");
257 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: No Match");
258 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
259 ok($tx->server_response->{UMerrorcode}, "00000");
260 ok($tx->server_response->{UMbatch}, qr/^\d+/);
261 ok($tx->server_response->{UMvpasResultCode}, "");
262 ok($tx->server_response->{UMcvv2ResultCode}, "M");
264 # no match address, zip5 & match cvv2
269 action => 'Normal Authorization',
270 description => 'Business::OnlinePayment test',
272 invoice_number => '100100',
273 name => 'Tofu Beast',
274 card_number => '4000100511112229',
275 expiration => expiration_date(),
276 address => '1234 Bean Curd Lane, San Francisco',
282 ok($tx->is_success());
283 ok($tx->error_message(), 'Approved');
284 ok($tx->authorization(), '/\d{6}/');
285 ok($tx->server_response->{UMavsResultCode}, "NNN");
286 ok($tx->server_response->{UMresult}, "A");
287 ok($tx->server_response->{UMcvv2Result}, "Match");
288 ok($tx->server_response->{UMversion}, "2.9");
289 ok($tx->server_response->{UMavsResult}, "Address: No Match & 5 Digit Zip: No Match");
290 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
291 ok($tx->server_response->{UMerrorcode}, "00000");
292 ok($tx->server_response->{UMbatch}, qr/^\d+/);
293 ok($tx->server_response->{UMvpasResultCode}, "");
294 ok($tx->server_response->{UMcvv2ResultCode}, "M");
296 # card number not on avs file
301 action => 'Normal Authorization',
302 description => 'Business::OnlinePayment test',
304 invoice_number => '100100',
305 name => 'Tofu Beast',
306 card_number => '4000100611112228',
307 expiration => expiration_date(),
308 address => '1234 Bean Curd Lane, San Francisco',
314 ok($tx->is_success());
315 ok($tx->error_message(), 'Approved');
316 ok($tx->authorization(), '/\d{6}/');
317 ok($tx->server_response->{UMavsResultCode}, "XXW");
318 ok($tx->server_response->{UMresult}, "A");
319 ok($tx->server_response->{UMcvv2Result}, "Match");
320 ok($tx->server_response->{UMversion}, "2.9");
321 ok($tx->server_response->{UMavsResult}, "Card Number Not On File");
322 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
323 ok($tx->server_response->{UMerrorcode}, "00000");
324 ok($tx->server_response->{UMbatch}, qr/^\d+/);
325 ok($tx->server_response->{UMvpasResultCode}, "");
326 ok($tx->server_response->{UMcvv2ResultCode}, "M");
333 action => 'Normal Authorization',
334 description => 'Business::OnlinePayment test',
336 invoice_number => '100100',
337 name => 'Tofu Beast',
338 card_number => '4000100711112227',
339 expiration => expiration_date(),
340 address => '1234 Bean Curd Lane, San Francisco',
346 ok($tx->is_success());
347 ok($tx->error_message(), 'Approved');
348 ok($tx->authorization(), '/\d{6}/');
349 ok($tx->server_response->{UMavsResultCode}, "XXU");
350 ok($tx->server_response->{UMresult}, "A");
351 ok($tx->server_response->{UMcvv2Result}, "Match");
352 ok($tx->server_response->{UMversion}, "2.9");
353 ok($tx->server_response->{UMavsResult}, "Address Information not verified for domestic transaction");
354 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
355 ok($tx->server_response->{UMerrorcode}, "00000");
356 ok($tx->server_response->{UMbatch}, qr/^\d+/);
357 ok($tx->server_response->{UMvpasResultCode}, "");
358 ok($tx->server_response->{UMcvv2ResultCode}, "M");
365 action => 'Normal Authorization',
366 description => 'Business::OnlinePayment test',
368 invoice_number => '100100',
369 name => 'Tofu Beast',
370 card_number => '4000100811112226',
371 expiration => expiration_date(),
372 address => '1234 Bean Curd Lane, San Francisco',
378 ok($tx->is_success());
379 ok($tx->error_message(), 'Approved');
380 ok($tx->authorization(), '/\d{6}/');
381 ok($tx->server_response->{UMavsResultCode}, "XXR");
382 ok($tx->server_response->{UMresult}, "A");
383 ok($tx->server_response->{UMcvv2Result}, "Match");
384 ok($tx->server_response->{UMversion}, "2.9");
385 ok($tx->server_response->{UMavsResult}, "Retry / System Unavailable");
386 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
387 ok($tx->server_response->{UMerrorcode}, "00000");
388 ok($tx->server_response->{UMbatch}, qr/^\d+/);
389 ok($tx->server_response->{UMvpasResultCode}, "");
390 ok($tx->server_response->{UMcvv2ResultCode}, "M");
397 action => 'Normal Authorization',
398 description => 'Business::OnlinePayment test',
400 invoice_number => '100100',
401 name => 'Tofu Beast',
402 card_number => '4000100911112225',
403 expiration => expiration_date(),
404 address => '1234 Bean Curd Lane, San Francisco',
410 ok($tx->is_success());
411 ok($tx->error_message(), 'Approved');
412 ok($tx->authorization(), '/\d{6}/');
413 ok($tx->server_response->{UMavsResultCode}, "XXS");
414 ok($tx->server_response->{UMresult}, "A");
415 ok($tx->server_response->{UMcvv2Result}, "Match");
416 ok($tx->server_response->{UMversion}, "2.9");
417 ok($tx->server_response->{UMavsResult}, "Service Not Supported");
418 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
419 ok($tx->server_response->{UMerrorcode}, "00000");
420 ok($tx->server_response->{UMbatch}, qr/^\d+/);
421 ok($tx->server_response->{UMvpasResultCode}, "");
422 ok($tx->server_response->{UMcvv2ResultCode}, "M");
424 # avs not allowed for card type
429 action => 'Normal Authorization',
430 description => 'Business::OnlinePayment test',
432 invoice_number => '100100',
433 name => 'Tofu Beast',
434 card_number => '4000101011112222',
435 expiration => expiration_date(),
436 address => '1234 Bean Curd Lane, San Francisco',
442 ok($tx->is_success());
443 ok($tx->error_message(), 'Approved');
444 ok($tx->authorization(), '/\d{6}/');
445 ok($tx->server_response->{UMavsResultCode}, "XXE");
446 ok($tx->server_response->{UMresult}, "A");
447 ok($tx->server_response->{UMcvv2Result}, "Match");
448 ok($tx->server_response->{UMversion}, "2.9");
449 ok($tx->server_response->{UMavsResult}, "Address Verification Not Allowed For Card Type");
450 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
451 ok($tx->server_response->{UMerrorcode}, "00000");
452 ok($tx->server_response->{UMbatch}, qr/^\d+/);
453 ok($tx->server_response->{UMvpasResultCode}, "");
454 ok($tx->server_response->{UMcvv2ResultCode}, "M");
456 # global non-avs participant
461 action => 'Normal Authorization',
462 description => 'Business::OnlinePayment test',
464 invoice_number => '100100',
465 name => 'Tofu Beast',
466 card_number => '4000101111112221',
467 expiration => expiration_date(),
468 address => '1234 Bean Curd Lane, San Francisco',
474 ok($tx->is_success());
475 ok($tx->error_message(), 'Approved');
476 ok($tx->authorization(), '/\d{6}/');
477 ok($tx->server_response->{UMavsResultCode}, "XXG");
478 ok($tx->server_response->{UMresult}, "A");
479 ok($tx->server_response->{UMcvv2Result}, "Match");
480 ok($tx->server_response->{UMversion}, "2.9");
481 ok($tx->server_response->{UMavsResult}, "Global Non-AVS participant");
482 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
483 ok($tx->server_response->{UMerrorcode}, "00000");
484 ok($tx->server_response->{UMbatch}, qr/^\d+/);
485 ok($tx->server_response->{UMvpasResultCode}, "");
486 ok($tx->server_response->{UMcvv2ResultCode}, "M");
488 # international address match, zip incompat
493 action => 'Normal Authorization',
494 description => 'Business::OnlinePayment test',
496 invoice_number => '100100',
497 name => 'Tofu Beast',
498 card_number => '4000101211112220',
499 expiration => expiration_date(),
500 address => '1234 Bean Curd Lane, San Francisco',
506 ok($tx->is_success());
507 ok($tx->error_message(), 'Approved');
508 ok($tx->authorization(), '/\d{6}/');
509 ok($tx->server_response->{UMavsResultCode}, "YYG");
510 ok($tx->server_response->{UMresult}, "A");
511 ok($tx->server_response->{UMcvv2Result}, "Match");
512 ok($tx->server_response->{UMversion}, "2.9");
513 ok($tx->server_response->{UMavsResult}, "International Address: Match & Postal: Not Compatible");
514 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
515 ok($tx->server_response->{UMerrorcode}, "00000");
516 ok($tx->server_response->{UMbatch}, qr/^\d+/);
517 ok($tx->server_response->{UMvpasResultCode}, "");
518 ok($tx->server_response->{UMcvv2ResultCode}, "M");
520 # international address match, zip
525 action => 'Normal Authorization',
526 description => 'Business::OnlinePayment test',
528 invoice_number => '100100',
529 name => 'Tofu Beast',
530 card_number => '4000101311112229',
531 expiration => expiration_date(),
532 address => '1234 Bean Curd Lane, San Francisco',
538 ok($tx->is_success());
539 ok($tx->error_message(), 'Approved');
540 ok($tx->authorization(), '/\d{6}/');
541 ok($tx->server_response->{UMavsResultCode}, "GGG");
542 ok($tx->server_response->{UMresult}, "A");
543 ok($tx->server_response->{UMcvv2Result}, "Match");
544 ok($tx->server_response->{UMversion}, "2.9");
545 ok($tx->server_response->{UMavsResult}, "International Address: Match & Postal: Match");
546 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
547 ok($tx->server_response->{UMerrorcode}, "00000");
548 ok($tx->server_response->{UMbatch}, qr/^\d+/);
549 ok($tx->server_response->{UMvpasResultCode}, "");
550 ok($tx->server_response->{UMcvv2ResultCode}, "M");
552 # international address Not compat & match, zip
557 action => 'Normal Authorization',
558 description => 'Business::OnlinePayment test',
560 invoice_number => '100100',
561 name => 'Tofu Beast',
562 card_number => '4000101411112228',
563 expiration => expiration_date(),
564 address => '1234 Bean Curd Lane, San Francisco',
570 ok($tx->is_success());
571 ok($tx->error_message(), 'Approved');
572 ok($tx->authorization(), '/\d{6}/');
573 ok($tx->server_response->{UMavsResultCode}, "YGG");
574 ok($tx->server_response->{UMresult}, "A");
575 ok($tx->server_response->{UMcvv2Result}, "Match");
576 ok($tx->server_response->{UMversion}, "2.9");
577 ok($tx->server_response->{UMavsResult}, "International Address: No Compatible & Postal: Match");
578 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
579 ok($tx->server_response->{UMerrorcode}, "00000");
580 ok($tx->server_response->{UMbatch}, qr/^\d+/);
581 ok($tx->server_response->{UMvpasResultCode}, "");
582 ok($tx->server_response->{UMcvv2ResultCode}, "M");
584 # full match, avs & match, zip
589 action => 'Normal Authorization',
590 description => 'Business::OnlinePayment test',
592 invoice_number => '100100',
593 name => 'Tofu Beast',
594 card_number => '4000200011112222',
595 expiration => expiration_date(),
596 address => '1234 Bean Curd Lane, San Francisco',
602 ok($tx->is_success());
603 ok($tx->error_message(), 'Approved');
604 ok($tx->authorization(), '/\d{6}/');
605 ok($tx->server_response->{UMavsResultCode}, "YYY");
606 ok($tx->server_response->{UMresult}, "A");
607 ok($tx->server_response->{UMcvv2Result}, "Match");
608 ok($tx->server_response->{UMversion}, "2.9");
609 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
610 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
611 ok($tx->server_response->{UMerrorcode}, "00000");
612 ok($tx->server_response->{UMbatch}, qr/^\d+/);
613 ok($tx->server_response->{UMvpasResultCode}, "");
614 ok($tx->server_response->{UMcvv2ResultCode}, "M");
616 # match avs & no match cvv2
621 action => 'Normal Authorization',
622 description => 'Business::OnlinePayment test',
624 invoice_number => '100100',
625 name => 'Tofu Beast',
626 card_number => '4000200111112221',
627 expiration => expiration_date(),
628 address => '1234 Bean Curd Lane, San Francisco',
634 ok($tx->is_success());
635 ok($tx->error_message(), 'Approved');
636 ok($tx->authorization(), '/\d{6}/');
637 ok($tx->server_response->{UMavsResultCode}, "YYY");
638 ok($tx->server_response->{UMresult}, "A");
639 ok($tx->server_response->{UMcvv2Result}, "No Match");
640 ok($tx->server_response->{UMversion}, "2.9");
641 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
642 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
643 ok($tx->server_response->{UMerrorcode}, "00000");
644 ok($tx->server_response->{UMbatch}, qr/^\d+/);
645 ok($tx->server_response->{UMvpasResultCode}, "");
646 ok($tx->server_response->{UMcvv2ResultCode}, "N");
648 # match avs & not processed cvv2
653 action => 'Normal Authorization',
654 description => 'Business::OnlinePayment test',
656 invoice_number => '100100',
657 name => 'Tofu Beast',
658 card_number => '4000200211112220',
659 expiration => expiration_date(),
660 address => '1234 Bean Curd Lane, San Francisco',
666 ok($tx->is_success());
667 ok($tx->error_message(), 'Approved');
668 ok($tx->authorization(), '/\d{6}/');
669 ok($tx->server_response->{UMavsResultCode}, "YYY");
670 ok($tx->server_response->{UMresult}, "A");
671 ok($tx->server_response->{UMcvv2Result}, "Not Processed");
672 ok($tx->server_response->{UMversion}, "2.9");
673 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
674 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
675 ok($tx->server_response->{UMerrorcode}, "00000");
676 ok($tx->server_response->{UMbatch}, qr/^\d+/);
677 ok($tx->server_response->{UMvpasResultCode}, "");
678 ok($tx->server_response->{UMcvv2ResultCode}, "P");
680 # match avs & fault in cvv2 database
685 action => 'Normal Authorization',
686 description => 'Business::OnlinePayment test',
688 invoice_number => '100100',
689 name => 'Tofu Beast',
690 card_number => '4000200311112229',
691 expiration => expiration_date(),
692 address => '1234 Bean Curd Lane, San Francisco',
698 ok($tx->is_success(),0);
699 ok($tx->error_message(), 'Card Declined (00)');
700 ok($tx->authorization(), '/\d{6}/');
701 ok($tx->server_response->{UMavsResultCode}, "YYY");
702 ok($tx->server_response->{UMresult}, "D");
703 ok($tx->server_response->{UMcvv2Result}, "Should be on card but not so indicated");
704 ok($tx->server_response->{UMversion}, "2.9");
705 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
706 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
707 ok($tx->server_response->{UMerrorcode}, "10127");
708 ok($tx->server_response->{UMbatch}, qr/^\d+/);
709 ok($tx->server_response->{UMvpasResultCode}, "");
710 ok($tx->server_response->{UMcvv2ResultCode}, "S");
712 # match avs & issuer not certified for cvv2
717 action => 'Normal Authorization',
718 description => 'Business::OnlinePayment test',
720 invoice_number => '100100',
721 name => 'Tofu Beast',
722 card_number => '4000200411112228',
723 expiration => expiration_date(),
724 address => '1234 Bean Curd Lane, San Francisco',
730 ok($tx->is_success());
731 ok($tx->error_message(), 'Approved');
732 ok($tx->authorization(), '/\d{6}/');
733 ok($tx->server_response->{UMavsResultCode}, "YYY");
734 ok($tx->server_response->{UMresult}, "A");
735 ok($tx->server_response->{UMcvv2Result}, "Issuer Not Certified");
736 ok($tx->server_response->{UMversion}, "2.9");
737 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
738 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
739 ok($tx->server_response->{UMerrorcode}, "00000");
740 ok($tx->server_response->{UMbatch}, qr/^\d+/);
741 ok($tx->server_response->{UMvpasResultCode}, "");
742 ok($tx->server_response->{UMcvv2ResultCode}, "U");
744 # match avs & no response for cvv2
749 action => 'Normal Authorization',
750 description => 'Business::OnlinePayment test',
752 invoice_number => '100100',
753 name => 'Tofu Beast',
754 card_number => '4000200511112227',
755 expiration => expiration_date(),
756 address => '1234 Bean Curd Lane, San Francisco',
762 ok($tx->is_success());
763 ok($tx->error_message(), 'Approved');
764 ok($tx->authorization(), '/\d{6}/');
765 ok($tx->server_response->{UMavsResultCode}, "YYY");
766 ok($tx->server_response->{UMresult}, "A");
767 ok($tx->server_response->{UMcvv2Result}, "No response from association");
768 ok($tx->server_response->{UMversion}, "2.9");
769 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
770 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
771 ok($tx->server_response->{UMerrorcode}, "00000");
772 ok($tx->server_response->{UMbatch}, qr/^\d+/);
773 ok($tx->server_response->{UMvpasResultCode}, "");
774 ok($tx->server_response->{UMcvv2ResultCode}, "X");
781 action => 'Normal Authorization',
782 description => 'Business::OnlinePayment test',
784 invoice_number => '100100',
785 name => 'Tofu Beast',
786 card_number => '4000300011112220',
787 expiration => expiration_date(),
788 address => '1234 Bean Curd Lane, San Francisco',
794 ok($tx->is_success(),0);
795 ok($tx->error_message(), 'Card Declined (00)');
796 ok($tx->authorization(), '/\d{6}/');
797 ok($tx->server_response->{UMavsResultCode}, "YYY");
798 ok($tx->server_response->{UMresult}, "D");
799 ok($tx->server_response->{UMcvv2Result}, "No Match"); #"Not Processed");
800 ok($tx->server_response->{UMversion}, "2.9");
801 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
802 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
803 ok($tx->server_response->{UMerrorcode}, "10127");
804 ok($tx->server_response->{UMbatch}, qr/^\d+/);
805 ok($tx->server_response->{UMvpasResultCode}, "");
806 ok($tx->server_response->{UMcvv2ResultCode}, "P");
813 action => 'Normal Authorization',
814 description => 'Business::OnlinePayment test',
816 invoice_number => '100100',
817 name => 'Tofu Beast',
818 card_number => '4000300111112229',
819 expiration => expiration_date(),
820 address => '1234 Bean Curd Lane, San Francisco',
826 ok($tx->is_success(),0);
827 ok($tx->error_message(), 'Transaction Requires Voice Authentication. Please Call-In.');
828 ok($tx->authorization(), '/\d{6}/');
829 ok($tx->server_response->{UMavsResultCode}, "YYY");
830 ok($tx->server_response->{UMresult}, "E");
831 ok($tx->server_response->{UMcvv2Result}, "No Match"); #"Not Processed");
832 ok($tx->server_response->{UMversion}, "2.9");
833 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
834 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
835 ok($tx->server_response->{UMerrorcode}, "00043");
836 ok($tx->server_response->{UMbatch}, qr/^\d+/);
837 ok($tx->server_response->{UMvpasResultCode}, "");
838 ok($tx->server_response->{UMcvv2ResultCode}, "P");
845 action => 'Normal Authorization',
846 description => 'Business::OnlinePayment test',
848 invoice_number => '100100',
849 name => 'Tofu Beast',
850 routing_code => '400020001',
851 account_number => '1112222',
852 customer_ssn => '999999999',
853 address => '1234 Bean Curd Lane, San Francisco',
857 ok($tx->is_success());
858 ok($tx->error_message(), ''); #'Approved');
859 ok($tx->authorization(), '/^\w{6}/'); #\d{6}/');
860 ok($tx->server_response->{UMavsResultCode}, "YYY");
861 ok($tx->server_response->{UMresult}, "E");
862 ok($tx->server_response->{UMcvv2Result}, "No CVV2/CVC data available for transaction.");
863 ok($tx->server_response->{UMversion}, "2.9");
864 ok($tx->server_response->{UMavsResult}, "No AVS response (Typically no AVS data sent or swiped transaction)"); #"n/a");
865 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
866 ok($tx->server_response->{UMerrorcode}, "00011");
867 ok($tx->server_response->{UMbatch}, qr/^\d+/);
868 ok($tx->server_response->{UMvpasResultCode}, "");
869 ok($tx->server_response->{UMcvv2ResultCode}, "");