my @flags = ($currency);
- foreach (ref $data{taxes} ?
- @{ $data{taxes} } :
- split(' ' => $data{taxes} || '')) {
+ my @taxes;
+ if (ref $data{taxes}) {
+ @taxes = @{ $data{taxes} };
+ } elsif ($data{taxes}) {
+ @taxes = split ' ' => $data{taxes};
+ }
+
+ foreach (@taxes) {
croak "Unknown tax code $_" unless /^(GST|PST|HST)$/i;
push @flags, uc $_;
}
croak "Unknown currency code ", $content{currency}
unless $content{currency} =~ /^(CAD|USD)$/;
- $content{taxes} = uc($content{taxes} || '');
-
my %data = $self->get_remap_fields(qw(
xxxCard_Number card_number
=item taxes
-Taxes to be added automatically to B<amount> by InternetSecure.
+Taxes to be added automatically to B<amount> by InternetSecure. Available
+taxes are C<GST>, C<PST> and C<HST>.
-Available taxes are C<GST>, C<PST> and C<HST>. Multiple taxes can specified
-by concatenating them with spaces, such as C<GST HST>.
+This argument can either be a single string of taxes concatenated with spaces
+(such as C<GST PST>), or a reference to an array of taxes (such as C<[ "GST",
+"PST" ]>).
=item name / company / address / city / state / zip / country / phone / email
-# vim:set syntax=perl:
+# vim:set syntax=perl encoding=utf-8:
-use Test::More tests => 4 + 2;
+use Test::More tests => 4 + 3;
BEGIN { use_ok('Business::OnlinePayment') };
BEGIN { use_ok('Business::OnlinePayment::InternetSecure') };
amount => undef,
currency => 'USD',
- taxes => 'GST PST',
+ taxes => 'HST',
description => [
{
{
amount => 5.65,
description => 'Shipping',
+ taxes => 'GST PST',
},
{
amount => 10.00,
description => 'Some HST example',
- taxes => 'HST',
+ taxes => [ 'GST', 'PST' ],
},
],
},
name => "Fr\x{e9}d\x{e9}ric Bri\x{e8}re",
amount => 12.95,
+ description => "Box o' goodies",
+ currency => 'USD',
+ taxes => 'GST',
+ },
+ {
+ _test => -1,
+
+ action => 'Normal Authorization',
+
+ card_number => '5111-1111-1111-1111',
+ exp_date => '0704',
+
+ name => "Fr\x{e9}d\x{e9}ric Bri\x{e8}re",
+
+ amount => 13.95,
},
);
<xxxCCYear>2004</xxxCCYear>
<CVV2>1</CVV2>
<CVV2Indicator>000</CVV2Indicator>
- <Products>9.99::5::a 001::Some product::{USD}{GST}{PST}|5.65::1::::Shipping::{USD}{GST}{PST}|10.00::1::::Some HST example::{USD}{HST}</Products>
+ <Products>9.99::5::a 001::Some product::{USD}{HST}|5.65::1::::Shipping::{USD}{GST}{PST}|10.00::1::::Some HST example::{USD}{GST}{PST}</Products>
<xxxName>Frédéric Brière</xxxName>
<xxxCompany></xxxCompany>
<xxxAddress>123 Street</xxxAddress>
<xxxCCYear>2004</xxxCCYear>
<CVV2>0</CVV2>
<CVV2Indicator></CVV2Indicator>
- <Products>12.95::1::::::{CAD}{TEST}</Products>
+ <Products>12.95::1::::Box o' goodies::{USD}{GST}{TEST}</Products>
+ <xxxName>Frédéric Brière</xxxName>
+ <xxxCompany></xxxCompany>
+ <xxxAddress></xxxAddress>
+ <xxxCity></xxxCity>
+ <xxxProvince></xxxProvince>
+ <xxxPostal></xxxPostal>
+ <xxxCountry></xxxCountry>
+ <xxxPhone></xxxPhone>
+ <xxxEmail></xxxEmail>
+ <xxxShippingName></xxxShippingName>
+ <xxxShippingCompany></xxxShippingCompany>
+ <xxxShippingAddress></xxxShippingAddress>
+ <xxxShippingCity></xxxShippingCity>
+ <xxxShippingProvince></xxxShippingProvince>
+ <xxxShippingPostal></xxxShippingPostal>
+ <xxxShippingCountry></xxxShippingCountry>
+ <xxxShippingPhone></xxxShippingPhone>
+ <xxxShippingEmail></xxxShippingEmail>
+</TranxRequest>
+
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<TranxRequest>
+ <MerchantNumber>0000</MerchantNumber>
+ <xxxCard_Number>5111111111111111</xxxCard_Number>
+ <xxxCCMonth>07</xxxCCMonth>
+ <xxxCCYear>2004</xxxCCYear>
+ <CVV2>0</CVV2>
+ <CVV2Indicator></CVV2Indicator>
+ <Products>13.95::1::::::{CAD}{TESTD}</Products>
<xxxName>Frédéric Brière</xxxName>
<xxxCompany></xxxCompany>
<xxxAddress></xxxAddress>