use_ok 'Business::OnlinePayment';
+#avoid dup checking in case "make test" is run too close to the last
+my $amount = sprintf('%.2f', rand(100));
+
my $tx = Business::OnlinePayment->new("AuthorizeNet");
$tx->server('test.authorize.net');
$tx->content(
password => $password,
action => 'Authorization Only',
description => 'Business::OnlinePayment visa test',
- amount => '49.95',
+ amount => $amount,
invoice_number => '100100',
customer_id => 'jsk',
first_name => 'Tofu',
card_number => '4007000000027',
expiration => expiration_date(),
);
-$tx->test_transaction(1); # test, dont really charge
+
+# don't set test_transaction (using test server though, still a test)
+# as per authorize.net:
+# "You need to be in Live Mode to get back a transaction ID"
+#$tx->test_transaction(1); # test, dont really charge
+
$tx->submit();
ok($tx->is_success()) or diag $tx->error_message;
+my $auth = $tx->authorization;
+
my $order_number = $tx->order_number;
like $order_number, qr/^\d+$/;
+#warn "auth: $auth\n";
+#warn "order_number: $order_number\n";
+
my $settle_tx = Business::OnlinePayment->new("AuthorizeNet");
$settle_tx->server('test.authorize.net');
$settle_tx->content(
password => $password,
action => 'Post Authorization',
description => 'Business::OnlinePayment visa test',
- amount => '49.95',
+ amount => $amount,
invoice_number => '100100',
- order_number => '111',
+ authorization => $auth,
+ order_number => $order_number,
card_number => '4007000000027',
expiration => expiration_date(),
);
-$settle_tx->test_transaction(1); # test, dont really charge
+#$settle_tx->test_transaction(1); # test, dont really charge
$settle_tx->submit();
ok($settle_tx->is_success()) || diag $settle_tx->error_message;
sub test_account_or_skip {
- my($login, $password) = test_account();
+ my $suffix = shift;
+ my($login, $password) = test_account($suffix);
unless( defined $login ) {
plan skip_all => "No test account";
}
sub test_account {
- open TEST_ACCOUNT, "t/test_account" or return;
+ my $suffix = shift || '';
+ $suffix = "_$suffix" if $suffix;
+ open TEST_ACCOUNT, "t/test_account$suffix" or return;
my($login, $password) = <TEST_ACCOUNT>;
chomp $login;
chomp $password;