When a customer purchases a product with a 3DS card that fails, and then attempts to fix the payment again using the same failing card, we incorrectly call $this->process_response( $charge, $order ); with a charge that has not been captured, resulting in the order being placed on-hold with the following order note:
This order note instructs merchants to mark the order as processing to take payment, but this won't work since the card is failing and the charge is not captureable.
To Reproduce
Enable the new checkout experience
Make sure capture later is disabled:
Purchase a product using a 3DS card that will decline: 4000008260003178
On the SCA window, press "Complete"
The checkout will fail
Try again using the same failing 3DS card: 4000008260003178
Now visit the WP Admin Edit Order page for this failing order
Notice it has an order note saying to mark the order as processing to take payment 👎
Describe the bug
Reported in: 8789458-zd-a8c
When a customer purchases a product with a 3DS card that fails, and then attempts to fix the payment again using the same failing card, we incorrectly call
$this->process_response( $charge, $order );
with a charge that has not been captured, resulting in the order being placed on-hold with the following order note:This order note instructs merchants to mark the order as processing to take payment, but this won't work since the card is failing and the charge is not captureable.
To Reproduce
4000008260003178
4000008260003178