If more than one payment for a transaction is received, exit the API
call early and return a MULTIPLE_PAYMENTS_FOR_XACT event.
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Signed-off-by: Mike Rylander <mrylander@gmail.com>
my @unique_xact_payments;
for my $pay (@{$payments->{payments}}) {
my $xact_id = $pay->[0];
- next if (exists($xacts{$xact_id}));
+ if (exists($xacts{$xact_id})) {
+ $e->rollback;
+ return OpenILS::Event->new('MULTIPLE_PAYMENTS_FOR_XACT');
+ }
my $xact = $e->retrieve_money_billable_transaction_summary($xact_id)
or return $e->die_event;