[freeside-commits] freeside/FS/FS/cust_main Billing_Realtime.pm, 1.23, 1.24
Erik Levinson
levinse at wavetail.420.am
Tue Jun 7 09:49:09 PDT 2011
- Previous message: [freeside-commits] freeside Makefile,1.196.2.6,1.196.2.7
- Next message: [freeside-commits] freeside/FS/FS phone_avail.pm, 1.14, 1.15 did_order_item.pm, 1.2, 1.3 did_order.pm, 1.5, 1.6 Schema.pm, 1.302, 1.303
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /home/cvs/cvsroot/freeside/FS/FS/cust_main
In directory wavetail.420.am:/tmp/cvs-serv7173/FS/FS/cust_main
Modified Files:
Billing_Realtime.pm
Log Message:
Billing_Realtime.pm: skip void attempt on refund if gateway doesn't support void, RT13058
Index: Billing_Realtime.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/cust_main/Billing_Realtime.pm,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -w -d -r1.23 -r1.24
--- Billing_Realtime.pm 12 May 2011 19:57:01 -0000 1.23
+++ Billing_Realtime.pm 7 Jun 2011 16:49:07 -0000 1.24
@@ -1285,7 +1285,8 @@
orignal payment, first an attempt is made to "void" the transaction via
the gateway (to cancel a not-yet settled transaction) and then if that fails,
the normal attempt is made to "refund" ("credit") the transaction via the
-gateway is attempted.
+gateway is attempted. No attempt to "void" the transaction is made if the
+gateway has introspection data and doesn't support void.
#The additional options I<payname>, I<address1>, I<address2>, I<city>, I<state>,
#I<zip>, I<payinfo> and I<paydate> are also available. Any of these options,
@@ -1415,14 +1416,28 @@
}
#first try void if applicable
+ my $void = new Business::OnlinePayment( $processor, @bop_options );
+
+ my $tryvoid = 1;
+ if ($void->can('info')) {
+ my $paytype = '';
+ $paytype = 'ECHECK' if $cust_pay && $cust_pay->payby eq 'CHEK';
+ $paytype = 'CC' if $cust_pay && $cust_pay->payby eq 'CARD';
+ my %supported_actions = $void->info('supported_actions');
+ $tryvoid = 0
+ if ( %supported_actions && $paytype
+ && defined($supported_actions{$paytype})
+ && !grep{ $_ eq 'Void' } @{$supported_actions{$paytype}} );
+ }
+
if ( $cust_pay && $cust_pay->paid == $amount
&& (
( not defined($disable_void_after) )
|| ( time < ($cust_pay->_date + $disable_void_after ) )
)
+ && $tryvoid
) {
warn " attempting void\n" if $DEBUG > 1;
- my $void = new Business::OnlinePayment( $processor, @bop_options );
if ( $void->can('info') ) {
if ( $cust_pay->payby eq 'CARD'
&& $void->info('CC_void_requires_card') )
- Previous message: [freeside-commits] freeside Makefile,1.196.2.6,1.196.2.7
- Next message: [freeside-commits] freeside/FS/FS phone_avail.pm, 1.14, 1.15 did_order_item.pm, 1.2, 1.3 did_order.pm, 1.5, 1.6 Schema.pm, 1.302, 1.303
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the freeside-commits
mailing list