- # This is a problem. A self-service third party payment that fails somehow
- # can't be retried, EVER, until someone manually clears it. Totally
- # arbitrary fix: if the existing payment is more than two minutes old,
- # kill it. This doesn't limit how long it can take the pending payment
- # to complete, only how long it will obstruct new payments.
- my @still_pending;
- foreach (@pending) {
- if ( time - $_->_date > 120 ) {
+
+ #for third-party payments only, remove pending payments if they're in the
+ #'thirdparty' (waiting for customer action) state.
+ if ( $namespace eq 'Business::OnlineThirdPartyPayment' ) {
+ foreach ( grep { $_->status eq 'thirdparty' } @pending ) {