You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When a customer places an order in the checkout for the iDEAL payment method, the order is immediately marked as authorized and captured. As a result the order is automatically invoiced and marked as paid. This all happens before the customer actually finishes (or declines!) his/her payment.
This issue has multiple serious consequences: an order that is not paid yet cannot be distinguished from orders that are correctly paid; when certain actions jobs are triggered on invoice generation / order payment, they will be executed even though the payment might never be actually fulfilled.
namespace Stripeofficial\IDeal\Model;
class Adapter extends \Magento\Payment\Model\Method\Adapter
{
public function getConfigPaymentAction()
{
return 'authorize_capture';
}
}
This is incorrect. First of all, the <payment_action> config setting should have been respected (which is the default behaviour of the getConfigPaymentAction method).
The order state/status is set to new/pending. Please use pending_payment/pending_payment; this better represents the actual state the order is in.
The payment action is still authorize where I would have expected order. The concept of authorization does not really exists for iDEAL payments (only capturing). Or is it that the Stripe platform requires an authorization directly after order placement?
When a customer places an order in the checkout for the iDEAL payment method, the order is immediately marked as authorized and captured. As a result the order is automatically invoiced and marked as paid. This all happens before the customer actually finishes (or declines!) his/her payment.
This issue has multiple serious consequences: an order that is not paid yet cannot be distinguished from orders that are correctly paid; when certain actions jobs are triggered on invoice generation / order payment, they will be executed even though the payment might never be actually fulfilled.
The problem seems to originate from the following lines of code:
This is incorrect. First of all, the
<payment_action>
config setting should have been respected (which is the default behaviour of thegetConfigPaymentAction
method).This setting is currently set to
authorize
:This is still incorrect, as the payment is not yet authorized after pressing the place order button.
The value should be
order
.See for instance the corresponding setting in the following Magento 2 PSP plugins that support iDEAL:
These modules also set the order status to
pending
(orpending_payment
), and not toprocessing
, which also adds up the confusion.Could you please have a look at this?
Thanks.
The text was updated successfully, but these errors were encountered: