View Issue Details

IDProjectCategoryView StatusLast Update
0007976module Adyenmodule Adyen - subpublic2026-07-27 17:28
ReporterSpritje Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status assignedResolutionopen 
Product Version1.1.11 / 2.1.10 
Fixed in Version1.1.12 / 2.1.11 
Summary0007976: Adyen-Module :: PaymentGatewas-Service: autorized Amount
DescriptionFor payments processed through the payment provider Adyen, an Oxid Shop EE (v 7.5) with the Adyen module (https://github.com/OXID-eSales/adyen-module v 2.1.10, SDK version 5.27.0) is used.
We noticed a discrepancy with an order placed via Adyen using Klarna: The customer had authorized an amount lower than the actual order value in Adyen, but the module displayed the full amount as authorized in the admin order overview.
Two-step capture is used here because orders placed via Klarna are not captured until the goods leave the warehouse.
That is why the error was not noticed until then.

Steps To ReproduceThe error can be reproduced as follows:

1. Add an item to the shopping cart.
2. Proceed to checkout and select, for example, “Klarna - Purchase on Account” (oscadyenklarna) as the payment method.
3. Open a separate tab in the same browser (same session) with the store.
4. In the first tab, click the Klarna button to be redirected to Klarna via Adyen (do not complete the payment yet).
5. In the separately opened tab, add more items to the shopping cart or change the quantity of items.
6. Complete the payment in the first tab.

Here, the user is redirected back to the store, the order is finalized, and the payment for the entire shopping cart at that time is saved as “Authorized.”
Additional InformationQA - ES -

TagsNo tags attached.

Activities

QA

2026-07-09 09:26

administrator   ~0018590

Last edited: 2026-07-27 17:28

Customer Note #140510:

Upon closer inspection, we noticed in the file “src/Service/PaymentGateway.php” (method “doFinishAdyenPayment” https://github.com/OXID-eSales/adyen-module/blob/v2. 1.10/src/Service/PaymentGateway.php#L70) that the entry in AdyenHistory does not save the amount reported by Adyen as “Authorized,” but rather the total order value. This results in the total order value being displayed as “Authorized” in the admin backend, which does not correspond to Adyen’s status at this point. Since, as already mentioned, the transaction is not captured immediately in our case, the order can be completed and only lead to a problem when it is captured later.
 
We have now temporarily corrected the error by modifying line 70 in the PaymentGateway service:
$amount,
isset($paymentDetails[‘amount’][‘value’]) ? ($paymentDetails[‘amount’][‘value’] / 100) : $amount,

-ES

This ensures that the actual amount authorized by the customer is stored in the AdyenHistory.
 
At this point, it might generally be safer to implement an additional check to ensure that the amount authorized in Adyen is greater than or equal to the total order value. Otherwise, abort the order finalization process (even with immediate capture), cancel the Adyen payment order, and redirect the user to the order overview page so they can repeat the payment process.