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 BEGIN { plan tests => 391, todo => [379,380,382] };
6 use Business::OnlinePayment::USAePay;
9 my ($tx, $txnum, $res);
10 ok($tx = new Business::OnlinePayment("USAePay"));
14 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
15 action => 'Normal Authorization',
16 description => 'Business::OnlinePayment test',
18 invoice_number => '100100',
20 card_number => '4005562233445564',
21 expiration => '11/08',
22 address => '1234 Bean Curd Lane, San Francisco',
27 ok($tx->is_success());
28 ok($tx->error_message(), 'Approved');
29 ok($tx->authorization(), '/\d{6}/');
30 ok($res = $tx->server_response());
31 ok($txnum = $res->{UMauthCode});
32 ok($res->{UMavsResultCode}, "YYY");
33 ok($res->{UMresult}, "A");
34 ok($res->{UMcvv2Result}, "Not Processed");
35 ok($res->{UMversion}, "2.9");
36 ok($res->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
37 ok($res->{UMrefNum}, qr/^\d+/);
38 ok($res->{UMbatch}, qr/^\d+/);
39 ok($res->{UMerrorcode}, "00000");
40 ok($res->{UMvpasResultCode}, "");
41 ok($res->{UMcvv2ResultCode}, "P");
45 ok(($tx->server_response->{UMauthCode} - $txnum) > 0);
47 # a test transaction with cvn
51 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
52 action => 'Normal Authorization',
53 description => 'Business::OnlinePayment test',
55 invoice_number => '100100',
57 card_number => '4005562233445564',
58 expiration => '11/08',
60 address => '1234 Bean Curd Lane, San Francisco',
65 ok($tx->is_success());
66 ok($tx->error_message(), 'Approved');
67 ok($tx->authorization(), '/\d{6}/');
68 ok($tx->server_response->{UMcvv2Result}, "Not Processed");
70 # a failing transaction
74 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
75 action => 'Normal Authorization',
76 description => 'Business::OnlinePayment test',
78 invoice_number => '100100',
82 email => 'tofu@example.com',
83 address => '1234 Bean Curd Lane, Sydney',
85 card_number => '4646464646464646',
86 expiration => '11/08',
90 ok($tx->test_transaction(0),0);
92 ok($tx->is_success(),0);
93 ok($tx->error_message(), 'Invalid Card Number (3)');
94 ok($tx->authorization(), '/\d{6}/');
95 ok($tx->server_response->{UMcvv2Result}, "No CVV2/CVC data available for transaction.");
97 #various test cards; semi-useful testing
98 #Full match avs, zip9 & cvv2
102 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
103 action => 'Normal Authorization',
104 description => 'Business::OnlinePayment test',
106 invoice_number => '100100',
107 name => 'Tofu Beast',
108 card_number => '4000100011112224',
109 expiration => '09/09',
110 address => '1234 Bean Curd Lane, San Francisco',
116 ok($tx->is_success());
117 ok($tx->error_message(), 'Approved');
118 ok($tx->authorization(), '/\d{6}/');
119 ok($tx->server_response->{UMavsResultCode}, "YYY");
120 ok($tx->server_response->{UMresult}, "A");
121 ok($tx->server_response->{UMcvv2Result}, "Match");
122 ok($tx->server_response->{UMversion}, "2.9");
123 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
124 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
125 ok($tx->server_response->{UMerrorcode}, "00000");
126 ok($tx->server_response->{UMbatch}, qr/^\d+/);
128 #Full match avs, zip9 & cvv2
132 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
133 action => 'Normal Authorization',
134 description => 'Business::OnlinePayment test',
136 invoice_number => '100100',
137 name => 'Tofu Beast',
138 card_number => '4000100111112223',
139 expiration => '09/09',
140 address => '1234 Bean Curd Lane, San Francisco',
146 ok($tx->is_success());
147 ok($tx->error_message(), 'Approved');
148 ok($tx->authorization(), '/\d{6}/');
149 ok($tx->server_response->{UMavsResultCode}, "YYX");
150 ok($tx->server_response->{UMresult}, "A");
151 ok($tx->server_response->{UMcvv2Result}, "Match");
152 ok($tx->server_response->{UMversion}, "2.9");
153 ok($tx->server_response->{UMavsResult}, "Address: Match & 9 Digit Zip: Match");
154 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
155 ok($tx->server_response->{UMerrorcode}, "00000");
156 ok($tx->server_response->{UMbatch}, qr/^\d+/);
157 ok($tx->server_response->{UMvpasResultCode}, "");
158 ok($tx->server_response->{UMcvv2ResultCode}, "M");
160 #no match avs, match zip5 & cvv2
164 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
165 action => 'Normal Authorization',
166 description => 'Business::OnlinePayment test',
168 invoice_number => '100100',
169 name => 'Tofu Beast',
170 card_number => '4000100211112222',
171 expiration => '09/09',
172 address => '1234 Bean Curd Lane, San Francisco',
178 ok($tx->is_success());
179 ok($tx->error_message(), 'Approved');
180 ok($tx->authorization(), '/\d{6}/');
181 ok($tx->server_response->{UMavsResultCode}, "NYZ");
182 ok($tx->server_response->{UMresult}, "A");
183 ok($tx->server_response->{UMcvv2Result}, "Match");
184 ok($tx->server_response->{UMversion}, "2.9");
185 ok($tx->server_response->{UMavsResult}, "Address: No Match & 5 Digit Zip: Match");
186 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
187 ok($tx->server_response->{UMerrorcode}, "00000");
188 ok($tx->server_response->{UMbatch}, qr/^\d+/);
189 ok($tx->server_response->{UMvpasResultCode}, "");
190 ok($tx->server_response->{UMcvv2ResultCode}, "M");
192 # no match address, match zip9 & cvv2
196 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
197 action => 'Normal Authorization',
198 description => 'Business::OnlinePayment test',
200 invoice_number => '100100',
201 name => 'Tofu Beast',
202 card_number => '4000100311112221',
203 expiration => '09/09',
204 address => '1234 Bean Curd Lane, San Francisco',
210 ok($tx->is_success());
211 ok($tx->error_message(), 'Approved');
212 ok($tx->authorization(), '/\d{6}/');
213 ok($tx->server_response->{UMavsResultCode}, "NYW");
214 ok($tx->server_response->{UMresult}, "A");
215 ok($tx->server_response->{UMcvv2Result}, "Match");
216 ok($tx->server_response->{UMversion}, "2.9");
217 ok($tx->server_response->{UMavsResult}, "Address: No Match & 9 Digit Zip: Match");
218 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
219 ok($tx->server_response->{UMerrorcode}, "00000");
220 ok($tx->server_response->{UMbatch}, qr/^\d+/);
221 ok($tx->server_response->{UMvpasResultCode}, "");
222 ok($tx->server_response->{UMcvv2ResultCode}, "M");
224 # match address, no match zip5 & match cvv2
228 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
229 action => 'Normal Authorization',
230 description => 'Business::OnlinePayment test',
232 invoice_number => '100100',
233 name => 'Tofu Beast',
234 card_number => '4000100411112220',
235 expiration => '09/09',
236 address => '1234 Bean Curd Lane, San Francisco',
242 ok($tx->is_success());
243 ok($tx->error_message(), 'Approved');
244 ok($tx->authorization(), '/\d{6}/');
245 ok($tx->server_response->{UMavsResultCode}, "YNA");
246 ok($tx->server_response->{UMresult}, "A");
247 ok($tx->server_response->{UMcvv2Result}, "Match");
248 ok($tx->server_response->{UMversion}, "2.9");
249 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: No Match");
250 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
251 ok($tx->server_response->{UMerrorcode}, "00000");
252 ok($tx->server_response->{UMbatch}, qr/^\d+/);
253 ok($tx->server_response->{UMvpasResultCode}, "");
254 ok($tx->server_response->{UMcvv2ResultCode}, "M");
256 # no match address, zip5 & match cvv2
260 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
261 action => 'Normal Authorization',
262 description => 'Business::OnlinePayment test',
264 invoice_number => '100100',
265 name => 'Tofu Beast',
266 card_number => '4000100511112229',
267 expiration => '09/09',
268 address => '1234 Bean Curd Lane, San Francisco',
274 ok($tx->is_success());
275 ok($tx->error_message(), 'Approved');
276 ok($tx->authorization(), '/\d{6}/');
277 ok($tx->server_response->{UMavsResultCode}, "NNN");
278 ok($tx->server_response->{UMresult}, "A");
279 ok($tx->server_response->{UMcvv2Result}, "Match");
280 ok($tx->server_response->{UMversion}, "2.9");
281 ok($tx->server_response->{UMavsResult}, "Address: No Match & 5 Digit Zip: No Match");
282 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
283 ok($tx->server_response->{UMerrorcode}, "00000");
284 ok($tx->server_response->{UMbatch}, qr/^\d+/);
285 ok($tx->server_response->{UMvpasResultCode}, "");
286 ok($tx->server_response->{UMcvv2ResultCode}, "M");
288 # card number not on avs file
292 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
293 action => 'Normal Authorization',
294 description => 'Business::OnlinePayment test',
296 invoice_number => '100100',
297 name => 'Tofu Beast',
298 card_number => '4000100611112228',
299 expiration => '09/09',
300 address => '1234 Bean Curd Lane, San Francisco',
306 ok($tx->is_success());
307 ok($tx->error_message(), 'Approved');
308 ok($tx->authorization(), '/\d{6}/');
309 ok($tx->server_response->{UMavsResultCode}, "XXW");
310 ok($tx->server_response->{UMresult}, "A");
311 ok($tx->server_response->{UMcvv2Result}, "Match");
312 ok($tx->server_response->{UMversion}, "2.9");
313 ok($tx->server_response->{UMavsResult}, "Card Number Not On File");
314 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
315 ok($tx->server_response->{UMerrorcode}, "00000");
316 ok($tx->server_response->{UMbatch}, qr/^\d+/);
317 ok($tx->server_response->{UMvpasResultCode}, "");
318 ok($tx->server_response->{UMcvv2ResultCode}, "M");
324 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
325 action => 'Normal Authorization',
326 description => 'Business::OnlinePayment test',
328 invoice_number => '100100',
329 name => 'Tofu Beast',
330 card_number => '4000100711112227',
331 expiration => '09/09',
332 address => '1234 Bean Curd Lane, San Francisco',
338 ok($tx->is_success());
339 ok($tx->error_message(), 'Approved');
340 ok($tx->authorization(), '/\d{6}/');
341 ok($tx->server_response->{UMavsResultCode}, "XXU");
342 ok($tx->server_response->{UMresult}, "A");
343 ok($tx->server_response->{UMcvv2Result}, "Match");
344 ok($tx->server_response->{UMversion}, "2.9");
345 ok($tx->server_response->{UMavsResult}, "Address Information not verified for domestic transaction");
346 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
347 ok($tx->server_response->{UMerrorcode}, "00000");
348 ok($tx->server_response->{UMbatch}, qr/^\d+/);
349 ok($tx->server_response->{UMvpasResultCode}, "");
350 ok($tx->server_response->{UMcvv2ResultCode}, "M");
356 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
357 action => 'Normal Authorization',
358 description => 'Business::OnlinePayment test',
360 invoice_number => '100100',
361 name => 'Tofu Beast',
362 card_number => '4000100811112226',
363 expiration => '09/09',
364 address => '1234 Bean Curd Lane, San Francisco',
370 ok($tx->is_success());
371 ok($tx->error_message(), 'Approved');
372 ok($tx->authorization(), '/\d{6}/');
373 ok($tx->server_response->{UMavsResultCode}, "XXR");
374 ok($tx->server_response->{UMresult}, "A");
375 ok($tx->server_response->{UMcvv2Result}, "Match");
376 ok($tx->server_response->{UMversion}, "2.9");
377 ok($tx->server_response->{UMavsResult}, "Retry / System Unavailable");
378 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
379 ok($tx->server_response->{UMerrorcode}, "00000");
380 ok($tx->server_response->{UMbatch}, qr/^\d+/);
381 ok($tx->server_response->{UMvpasResultCode}, "");
382 ok($tx->server_response->{UMcvv2ResultCode}, "M");
388 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
389 action => 'Normal Authorization',
390 description => 'Business::OnlinePayment test',
392 invoice_number => '100100',
393 name => 'Tofu Beast',
394 card_number => '4000100911112225',
395 expiration => '09/09',
396 address => '1234 Bean Curd Lane, San Francisco',
402 ok($tx->is_success());
403 ok($tx->error_message(), 'Approved');
404 ok($tx->authorization(), '/\d{6}/');
405 ok($tx->server_response->{UMavsResultCode}, "XXS");
406 ok($tx->server_response->{UMresult}, "A");
407 ok($tx->server_response->{UMcvv2Result}, "Match");
408 ok($tx->server_response->{UMversion}, "2.9");
409 ok($tx->server_response->{UMavsResult}, "Service Not Support");
410 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
411 ok($tx->server_response->{UMerrorcode}, "00000");
412 ok($tx->server_response->{UMbatch}, qr/^\d+/);
413 ok($tx->server_response->{UMvpasResultCode}, "");
414 ok($tx->server_response->{UMcvv2ResultCode}, "M");
416 # avs not allowed for card type
420 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
421 action => 'Normal Authorization',
422 description => 'Business::OnlinePayment test',
424 invoice_number => '100100',
425 name => 'Tofu Beast',
426 card_number => '4000101011112222',
427 expiration => '09/09',
428 address => '1234 Bean Curd Lane, San Francisco',
434 ok($tx->is_success());
435 ok($tx->error_message(), 'Approved');
436 ok($tx->authorization(), '/\d{6}/');
437 ok($tx->server_response->{UMavsResultCode}, "XXE");
438 ok($tx->server_response->{UMresult}, "A");
439 ok($tx->server_response->{UMcvv2Result}, "Match");
440 ok($tx->server_response->{UMversion}, "2.9");
441 ok($tx->server_response->{UMavsResult}, "Address Verification Not Allowed For Card Type");
442 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
443 ok($tx->server_response->{UMerrorcode}, "00000");
444 ok($tx->server_response->{UMbatch}, qr/^\d+/);
445 ok($tx->server_response->{UMvpasResultCode}, "");
446 ok($tx->server_response->{UMcvv2ResultCode}, "M");
448 # global non-avs participant
452 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
453 action => 'Normal Authorization',
454 description => 'Business::OnlinePayment test',
456 invoice_number => '100100',
457 name => 'Tofu Beast',
458 card_number => '4000101111112221',
459 expiration => '09/09',
460 address => '1234 Bean Curd Lane, San Francisco',
466 ok($tx->is_success());
467 ok($tx->error_message(), 'Approved');
468 ok($tx->authorization(), '/\d{6}/');
469 ok($tx->server_response->{UMavsResultCode}, "XXG");
470 ok($tx->server_response->{UMresult}, "A");
471 ok($tx->server_response->{UMcvv2Result}, "Match");
472 ok($tx->server_response->{UMversion}, "2.9");
473 ok($tx->server_response->{UMavsResult}, "Global Non-AVS participant");
474 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
475 ok($tx->server_response->{UMerrorcode}, "00000");
476 ok($tx->server_response->{UMbatch}, qr/^\d+/);
477 ok($tx->server_response->{UMvpasResultCode}, "");
478 ok($tx->server_response->{UMcvv2ResultCode}, "M");
480 # international address match, zip incompat
484 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
485 action => 'Normal Authorization',
486 description => 'Business::OnlinePayment test',
488 invoice_number => '100100',
489 name => 'Tofu Beast',
490 card_number => '4000101211112220',
491 expiration => '09/09',
492 address => '1234 Bean Curd Lane, San Francisco',
498 ok($tx->is_success());
499 ok($tx->error_message(), 'Approved');
500 ok($tx->authorization(), '/\d{6}/');
501 ok($tx->server_response->{UMavsResultCode}, "YYG");
502 ok($tx->server_response->{UMresult}, "A");
503 ok($tx->server_response->{UMcvv2Result}, "Match");
504 ok($tx->server_response->{UMversion}, "2.9");
505 ok($tx->server_response->{UMavsResult}, "International Address: Match & Zip: Not Compatible");
506 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
507 ok($tx->server_response->{UMerrorcode}, "00000");
508 ok($tx->server_response->{UMbatch}, qr/^\d+/);
509 ok($tx->server_response->{UMvpasResultCode}, "");
510 ok($tx->server_response->{UMcvv2ResultCode}, "M");
512 # international address match, zip
516 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
517 action => 'Normal Authorization',
518 description => 'Business::OnlinePayment test',
520 invoice_number => '100100',
521 name => 'Tofu Beast',
522 card_number => '4000101311112229',
523 expiration => '09/09',
524 address => '1234 Bean Curd Lane, San Francisco',
530 ok($tx->is_success());
531 ok($tx->error_message(), 'Approved');
532 ok($tx->authorization(), '/\d{6}/');
533 ok($tx->server_response->{UMavsResultCode}, "GGG");
534 ok($tx->server_response->{UMresult}, "A");
535 ok($tx->server_response->{UMcvv2Result}, "Match");
536 ok($tx->server_response->{UMversion}, "2.9");
537 ok($tx->server_response->{UMavsResult}, "International Address: Match & Zip: Match");
538 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
539 ok($tx->server_response->{UMerrorcode}, "00000");
540 ok($tx->server_response->{UMbatch}, qr/^\d+/);
541 ok($tx->server_response->{UMvpasResultCode}, "");
542 ok($tx->server_response->{UMcvv2ResultCode}, "M");
544 # international address Not compat & match, zip
548 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
549 action => 'Normal Authorization',
550 description => 'Business::OnlinePayment test',
552 invoice_number => '100100',
553 name => 'Tofu Beast',
554 card_number => '4000101411112228',
555 expiration => '09/09',
556 address => '1234 Bean Curd Lane, San Francisco',
562 ok($tx->is_success());
563 ok($tx->error_message(), 'Approved');
564 ok($tx->authorization(), '/\d{6}/');
565 ok($tx->server_response->{UMavsResultCode}, "YGG");
566 ok($tx->server_response->{UMresult}, "A");
567 ok($tx->server_response->{UMcvv2Result}, "Match");
568 ok($tx->server_response->{UMversion}, "2.9");
569 ok($tx->server_response->{UMavsResult}, "International Address: No Compatible & Zip: Match");
570 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
571 ok($tx->server_response->{UMerrorcode}, "00000");
572 ok($tx->server_response->{UMbatch}, qr/^\d+/);
573 ok($tx->server_response->{UMvpasResultCode}, "");
574 ok($tx->server_response->{UMcvv2ResultCode}, "M");
576 # full match, avs & match, zip
580 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
581 action => 'Normal Authorization',
582 description => 'Business::OnlinePayment test',
584 invoice_number => '100100',
585 name => 'Tofu Beast',
586 card_number => '4000200011112222',
587 expiration => '09/09',
588 address => '1234 Bean Curd Lane, San Francisco',
594 ok($tx->is_success());
595 ok($tx->error_message(), 'Approved');
596 ok($tx->authorization(), '/\d{6}/');
597 ok($tx->server_response->{UMavsResultCode}, "YYY");
598 ok($tx->server_response->{UMresult}, "A");
599 ok($tx->server_response->{UMcvv2Result}, "Match");
600 ok($tx->server_response->{UMversion}, "2.9");
601 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
602 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
603 ok($tx->server_response->{UMerrorcode}, "00000");
604 ok($tx->server_response->{UMbatch}, qr/^\d+/);
605 ok($tx->server_response->{UMvpasResultCode}, "");
606 ok($tx->server_response->{UMcvv2ResultCode}, "M");
608 # match avs & no match cvv2
612 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
613 action => 'Normal Authorization',
614 description => 'Business::OnlinePayment test',
616 invoice_number => '100100',
617 name => 'Tofu Beast',
618 card_number => '4000200111112221',
619 expiration => '09/09',
620 address => '1234 Bean Curd Lane, San Francisco',
626 ok($tx->is_success());
627 ok($tx->error_message(), 'Approved');
628 ok($tx->authorization(), '/\d{6}/');
629 ok($tx->server_response->{UMavsResultCode}, "YYY");
630 ok($tx->server_response->{UMresult}, "A");
631 ok($tx->server_response->{UMcvv2Result}, "No Match");
632 ok($tx->server_response->{UMversion}, "2.9");
633 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
634 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
635 ok($tx->server_response->{UMerrorcode}, "00000");
636 ok($tx->server_response->{UMbatch}, qr/^\d+/);
637 ok($tx->server_response->{UMvpasResultCode}, "");
638 ok($tx->server_response->{UMcvv2ResultCode}, "N");
640 # match avs & not processed cvv2
644 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
645 action => 'Normal Authorization',
646 description => 'Business::OnlinePayment test',
648 invoice_number => '100100',
649 name => 'Tofu Beast',
650 card_number => '4000200211112220',
651 expiration => '09/09',
652 address => '1234 Bean Curd Lane, San Francisco',
658 ok($tx->is_success());
659 ok($tx->error_message(), 'Approved');
660 ok($tx->authorization(), '/\d{6}/');
661 ok($tx->server_response->{UMavsResultCode}, "YYY");
662 ok($tx->server_response->{UMresult}, "A");
663 ok($tx->server_response->{UMcvv2Result}, "Not Processed");
664 ok($tx->server_response->{UMversion}, "2.9");
665 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
666 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
667 ok($tx->server_response->{UMerrorcode}, "00000");
668 ok($tx->server_response->{UMbatch}, qr/^\d+/);
669 ok($tx->server_response->{UMvpasResultCode}, "");
670 ok($tx->server_response->{UMcvv2ResultCode}, "P");
672 # match avs & fault in cvv2 database
676 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
677 action => 'Normal Authorization',
678 description => 'Business::OnlinePayment test',
680 invoice_number => '100100',
681 name => 'Tofu Beast',
682 card_number => '4000200311112229',
683 expiration => '09/09',
684 address => '1234 Bean Curd Lane, San Francisco',
690 ok($tx->is_success(),0);
691 ok($tx->error_message(), 'Card Declined');
692 ok($tx->authorization(), '/\d{6}/');
693 ok($tx->server_response->{UMavsResultCode}, "YYY");
694 ok($tx->server_response->{UMresult}, "D");
695 ok($tx->server_response->{UMcvv2Result}, "Should be on card but not so indicated");
696 ok($tx->server_response->{UMversion}, "2.9");
697 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
698 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
699 ok($tx->server_response->{UMerrorcode}, "10127");
700 ok($tx->server_response->{UMbatch}, qr/^\d+/);
701 ok($tx->server_response->{UMvpasResultCode}, "");
702 ok($tx->server_response->{UMcvv2ResultCode}, "S");
704 # match avs & issuer not certified for cvv2
708 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
709 action => 'Normal Authorization',
710 description => 'Business::OnlinePayment test',
712 invoice_number => '100100',
713 name => 'Tofu Beast',
714 card_number => '4000200411112228',
715 expiration => '09/09',
716 address => '1234 Bean Curd Lane, San Francisco',
722 ok($tx->is_success());
723 ok($tx->error_message(), 'Approved');
724 ok($tx->authorization(), '/\d{6}/');
725 ok($tx->server_response->{UMavsResultCode}, "YYY");
726 ok($tx->server_response->{UMresult}, "A");
727 ok($tx->server_response->{UMcvv2Result}, "Issuer Not Certified");
728 ok($tx->server_response->{UMversion}, "2.9");
729 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
730 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
731 ok($tx->server_response->{UMerrorcode}, "00000");
732 ok($tx->server_response->{UMbatch}, qr/^\d+/);
733 ok($tx->server_response->{UMvpasResultCode}, "");
734 ok($tx->server_response->{UMcvv2ResultCode}, "U");
736 # match avs & no response for cvv2
740 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
741 action => 'Normal Authorization',
742 description => 'Business::OnlinePayment test',
744 invoice_number => '100100',
745 name => 'Tofu Beast',
746 card_number => '4000200511112227',
747 expiration => '09/09',
748 address => '1234 Bean Curd Lane, San Francisco',
754 ok($tx->is_success());
755 ok($tx->error_message(), 'Approved');
756 ok($tx->authorization(), '/\d{6}/');
757 ok($tx->server_response->{UMavsResultCode}, "YYY");
758 ok($tx->server_response->{UMresult}, "A");
759 ok($tx->server_response->{UMcvv2Result}, "No response from association");
760 ok($tx->server_response->{UMversion}, "2.9");
761 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
762 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
763 ok($tx->server_response->{UMerrorcode}, "00000");
764 ok($tx->server_response->{UMbatch}, qr/^\d+/);
765 ok($tx->server_response->{UMvpasResultCode}, "");
766 ok($tx->server_response->{UMcvv2ResultCode}, "X");
772 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
773 action => 'Normal Authorization',
774 description => 'Business::OnlinePayment test',
776 invoice_number => '100100',
777 name => 'Tofu Beast',
778 card_number => '4000300011112220',
779 expiration => '09/09',
780 address => '1234 Bean Curd Lane, San Francisco',
786 ok($tx->is_success(),0);
787 ok($tx->error_message(), 'Card Declined');
788 ok($tx->authorization(), '/\d{6}/');
789 ok($tx->server_response->{UMavsResultCode}, "YYY");
790 ok($tx->server_response->{UMresult}, "D");
791 ok($tx->server_response->{UMcvv2Result}, "Not Processed");
792 ok($tx->server_response->{UMversion}, "2.9");
793 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
794 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
795 ok($tx->server_response->{UMerrorcode}, "10127");
796 ok($tx->server_response->{UMbatch}, qr/^\d+/);
797 ok($tx->server_response->{UMvpasResultCode}, "");
798 ok($tx->server_response->{UMcvv2ResultCode}, "P");
804 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
805 action => 'Normal Authorization',
806 description => 'Business::OnlinePayment test',
808 invoice_number => '100100',
809 name => 'Tofu Beast',
810 card_number => '4000300111112229',
811 expiration => '09/09',
812 address => '1234 Bean Curd Lane, San Francisco',
818 ok($tx->is_success(),0);
819 ok($tx->error_message(), 'Transaction Requires Voice Authentication. Please Call-In.');
820 ok($tx->authorization(), '/\d{6}/');
821 ok($tx->server_response->{UMavsResultCode}, "YYY");
822 ok($tx->server_response->{UMresult}, "E");
823 ok($tx->server_response->{UMcvv2Result}, "Not Processed");
824 ok($tx->server_response->{UMversion}, "2.9");
825 ok($tx->server_response->{UMavsResult}, "Address: Match & 5 Digit Zip: Match");
826 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
827 ok($tx->server_response->{UMerrorcode}, "00043");
828 ok($tx->server_response->{UMbatch}, qr/^\d+/);
829 ok($tx->server_response->{UMvpasResultCode}, "");
830 ok($tx->server_response->{UMcvv2ResultCode}, "P");
836 login => 'yCaWGYQsSVR0S48B6AKMK07RQhaxHvGu', #test platform
837 action => 'Normal Authorization',
838 description => 'Business::OnlinePayment test',
840 invoice_number => '100100',
841 name => 'Tofu Beast',
842 routing_code => '400020001',
843 account_number => '1112222',
844 customer_ssn => '999999999',
845 address => '1234 Bean Curd Lane, San Francisco',
849 ok($tx->is_success());
850 ok($tx->error_message(), 'Approved');
851 ok($tx->authorization(), '/^\d{6}/');
852 ok($tx->server_response->{UMavsResultCode}, "YYY");
853 ok($tx->server_response->{UMresult}, "E");
854 ok($tx->server_response->{UMcvv2Result}, "No CVV2/CVC data available for transaction.");
855 ok($tx->server_response->{UMversion}, "2.9");
856 ok($tx->server_response->{UMavsResult}, "n/a");
857 ok($tx->server_response->{UMrefNum}, qr/^\d+/);
858 ok($tx->server_response->{UMerrorcode}, "00011");
859 ok($tx->server_response->{UMbatch}, qr/^\d+/);
860 ok($tx->server_response->{UMvpasResultCode}, "");
861 ok($tx->server_response->{UMcvv2ResultCode}, "");