From 5fa8e40f946cdac7090e146232c16c836461166d Mon Sep 17 00:00:00 2001 From: olivermrbl Date: Tue, 25 Aug 2020 17:24:31 +0200 Subject: [PATCH] Fixes Adyen payment methods response + endpoint errors --- .../src/api/routes/store/retrieve-payment-methods.js | 11 ++++++++++- packages/medusa-payment-adyen/src/services/adyen.js | 8 ++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/medusa-payment-adyen/src/api/routes/store/retrieve-payment-methods.js b/packages/medusa-payment-adyen/src/api/routes/store/retrieve-payment-methods.js index f8bddd9793..1346270d88 100644 --- a/packages/medusa-payment-adyen/src/api/routes/store/retrieve-payment-methods.js +++ b/packages/medusa-payment-adyen/src/api/routes/store/retrieve-payment-methods.js @@ -36,7 +36,16 @@ export default async (req, res) => { region.currency_code ) - res.status(200).json({ paymentMethods: data }) + // Adyen does not behave 100% correctly in regards to allowed methods + // Therefore, we sanity filter before sending them to the storefront + const { paymentMethods, groups } = data + const methods = paymentMethods.filter((pm) => + allowedMethods.includes(pm.type) + ) + + res + .status(200) + .json({ paymentMethods: { paymentMethods: methods, groups } }) } catch (err) { throw err } diff --git a/packages/medusa-payment-adyen/src/services/adyen.js b/packages/medusa-payment-adyen/src/services/adyen.js index 2778fda451..d90b51e492 100644 --- a/packages/medusa-payment-adyen/src/services/adyen.js +++ b/packages/medusa-payment-adyen/src/services/adyen.js @@ -24,7 +24,7 @@ class AdyenService extends BaseService { }) this.adyenPaymentApi = axios.create({ - baseURL: "https://pal-test.adyen.com/pal/servlet/Payment/v53", + baseURL: "https://pal-test.adyen.com/pal/servlet/Payment/v52", headers: { "Content-Type": "application/json", "x-API-key": this.options_.api_key, @@ -154,7 +154,7 @@ class AdyenService extends BaseService { const { pspReference, amount } = data try { - const captured = this.adyenPaymentApi.post("/capture", { + const captured = await this.adyenPaymentApi.post("/capture", { originalReference: pspReference, modificationAmount: amount, merchantAccount: this.options_.merchant_account, @@ -187,7 +187,7 @@ class AdyenService extends BaseService { const { pspReference, amount } = data try { - return this.adyenPaymentApi.post("/capture", { + return this.adyenPaymentApi.post("/refund", { originalReference: pspReference, merchantAccount: this.options_.merchant_account, modificationAmount: amount, @@ -206,7 +206,7 @@ class AdyenService extends BaseService { const { pspReference } = paymentData try { - return this.adyenPaymentApi.post("/capture", { + return this.adyenPaymentApi.post("/cancel", { originalReference: pspReference, merchantAccount: this.options_.merchant_account, })