Business-CPI
view release on metacpan or search on metacpan
lib/Business/CPI/Gateway/Test.pm view on Meta::CPAN
$i++;
}
$i = 1;
foreach my $receiver (@{ $cart->_receivers }) {
push @hidden_inputs,
(
"receiver${i}_id" => $receiver->account->gateway_id,
"receiver${i}_percent" => sprintf("%.2f", 0+$receiver->percent_amount),
);
$i++;
}
return @hidden_inputs;
}
# TODO
# use SQLite?
# sub get_notification_details {}
lib/Business/CPI/Role/Receiver.pm view on Meta::CPAN
is => 'rw',
isa => Bool,
);
has fixed_amount => (
is => 'rw',
isa => Money,
coerce => Money->coercion,
);
has percent_amount => (
is => 'rw',
coerce => sub { 0 + $_[0] }
);
around BUILDARGS => sub {
my $orig = shift;
my $self = shift;
my $args = $self->$orig(@_);
lib/Business/CPI/Role/Receiver.pm view on Meta::CPAN
# when building a cart
my $cart = $cpi->new_cart({
...
receivers => [
{
# alias for account.gateway_id
gateway_id => 2313,
fixed_amount => 50.00,
percent_amount => 5.00,
pay_gateway_fee => 1,
},
{
account => $cpi->account_class->new({ ... }),
fixed_amount => 250.00,
pay_gateway_fee => 0,
},
],
});
=head1 DESCRIPTION
This role is meant to be included by the class which represents Receivers in
the gateway, such as L<Business::CPI::Base::Receiver>. A Receiver is an account
in the gateway which is going to receive a percentage or fixed amount of the
payment being made.
=head1 ATTRIBUTES
=head2 account
B<MANDATORY>. A representation of the user account in the gateway. See
L<< the Account role | Business::CPI::Role::Account >> for details.
=head2 gateway_id (shortcut)
lib/Business/CPI/Role/Receiver.pm view on Meta::CPAN
PayPal.
=head2 gateway_fee
The fee amount this receiver was charged by the gateway.
=head2 fixed_amount
The value, in the chosen currency, this receiver is getting of the payment.
=head2 percentual_amount
The percentage of the payment that this receiver is getting.
=head1 AUTHOR
André Walker <andre@andrewalker.net>
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2015 by André Walker.
This is free software; you can redistribute it and/or modify it under
t/06receivers.t view on Meta::CPAN
address_number => '25b',
address_district => 'My neighbourhood',
address_complement => 'Apartment 05',
address_city => 'Happytown',
address_state => 'SP',
address_country => 'BR',
},
receivers => [
{
gateway_id => 'receiver1',
percent_amount => 5,
},
{
account => Business::CPI::Base::Account->new(gateway_id => 'receiver2', _gateway => $cpi),
percent_amount => 5,
},
],
});
$cart->add_item({
id => 1,
description => 'Sample item',
price => 200,
quantity => 10,
});
t/06receivers.t view on Meta::CPAN
is( get_value_for($form, 'buyer_name'), 'Mr. Buyer', 'form value buyer_name is correct' );
is( get_value_for($form, 'buyer_email'), 'buyer@andrewalker.net', 'form value buyer_email is correct' );
is( get_value_for($form, 'encoding'), 'UTF-8', 'form value encoding is correct' );
is( get_value_for($form, 'item1_id'), '1', 'form value item1_id is correct' );
is( get_value_for($form, 'item1_desc'), 'Sample item', 'form value item1_desc is correct' );
is( get_value_for($form, 'item1_price'), '200.00', 'form value item1_price is correct' );
is( get_value_for($form, 'item1_qty'), '10', 'form value item1_qty is correct' );
is( get_value_for($form, 'receiver1_id'), 'receiver1', 'form value receiver1_id is correct' );
is( get_value_for($form, 'receiver1_percent'), '5.00', 'form value receiver1_percent is correct' );
is( get_value_for($form, 'receiver2_id'), 'receiver2', 'form value receiver2_id is correct' );
is( get_value_for($form, 'receiver2_percent'), '5.00', 'form value receiver2_percent is correct' );
done_testing;
sub get_value_for {
my ($form, $name) = @_;
return $form->look_down(_tag => 'input', name => $name )->attr('value');
}
( run in 0.363 second using v1.01-cache-2.11-cpan-709fd43a63f )