Description
Describe the bug
In Delijn for the merchant Account AD_ECOM_WEB, we have configured Bancontact payment method.
we have done a POC to integrate Adyen plugin with SAP Commerce, during analysis we have observed that there is a discrepancy in the Order status when order is placed using bancontact 3DS card in following two ways.
- Bancontact 3DS payment with standard redirection flow using API/payment/details call.
- Bancontact 3DS payment with interrupted redirection without payment/details call using Asynchronous Adyen authorization webhook event.
( Bancontact is considered low risk transaction by PSP that means having just authorization on redirected 3DS bank page if enough to make successful transaction, and subsequent payment details call to Adyen is strictly not required)
Commerce implementation: Delijn
SAP Commerce version: 2211
Test Merchant Account: AD_ECOM_WEB
Adyen Hybris plugin version: 13.0.0
Adyen API version: 71
Payment method: card
environment: test
To Reproduce
Case 1
- Go to drop in
- select payment method Bancontact
- enter Bancontact 3DS card details
- click on Pay
- redirection to bank page
- enter bank password
- redirection to SAP commerce
- Payment details call
- Order confirmation page
- Go to backoffice open order
- Order status is null
Case 2
- Go to drop in
- select payment method Bancontact
- enter Bancontact 3DS card details
- click on Pay
- redirection to bank page
- enter bank password
- close the browser while redirecting back to SAP commerce (ensure payment details call is not made)
- Go to backoffice open order
- Order status is pending payment
Expected behavior
In both the above cases order status should be same.
Desktop (please complete the following information):
- OS: Windows 11
- Chrome
- Version: 131.0.6778.85
Additional context
End points
place order: com.adyen.commerce.controllers.PlaceOrderController.onPlaceOrder(String, HttpServletRequest)
redirection: com.adyen.commerce.controllers.RedirectController.authorizeRedirectPaymentGet(HttpServletRequest)
notification/webhook: AdyenNotificationControllerV2.onReceive(String, HttpServletRequest)
Code reference: com.adyen.v6.facades.impl.DefaultAdyenCheckoutFacade.updateOrderPaymentStatusAndInfo(OrderModel, PaymentDetailsResponse)
Line no: 394 - 399