From 6adac428b43718dee37b859e66ec84f24436dafe Mon Sep 17 00:00:00 2001 From: Adrien Horgnies Date: Mon, 12 Oct 2020 15:43:22 +0000 Subject: [PATCH] [FIX] payment_stripe: hide disabled local payment methods If a merchants didn't enable a local Payment Method Type (PMT) on Stripe side (such as bancontact), his customers eligible for it (ex.: Belgian and paying in EUR) won't be able to pay using it. This commit fixes this issue by adding a condition on the payment icons assigned to Stripe: if the payment icon related to a given payment method is not listed as a supported payment icon, the related payment method is not offered to customers, unless the payment icon does not exist at all. User can enable PMTs through (Payment Acquirers > Stripe > Configuration > Supported Payment Icons). This concerns: ideal, bancontact, eps, giropay and p24. This solution is not entirely satisfactory but it isn't possible to fetch enabled PMT from Stripe. opw-2335482 closes odoo/odoo#60740 X-original-commit: 1d0f23599bbd425c81131a5f6c1c22531ffcd0ee Signed-off-by: Antoine Vandevenne (anv) --- addons/payment/data/payment_icon_data.xml | 15 +++++ addons/payment/static/img/eps.png | Bin 0 -> 5935 bytes addons/payment/static/img/giropay.png | Bin 0 -> 10372 bytes addons/payment/static/img/p24.png | Bin 0 -> 5620 bytes addons/payment_stripe/models/payment.py | 9 ++- addons/payment_stripe/tests/test_stripe.py | 68 ++++++++++++++++++++- 6 files changed, 88 insertions(+), 4 deletions(-) create mode 100644 addons/payment/static/img/eps.png create mode 100644 addons/payment/static/img/giropay.png create mode 100644 addons/payment/static/img/p24.png diff --git a/addons/payment/data/payment_icon_data.xml b/addons/payment/data/payment_icon_data.xml index 44780e8b493..19df0c52c54 100644 --- a/addons/payment/data/payment_icon_data.xml +++ b/addons/payment/data/payment_icon_data.xml @@ -50,6 +50,21 @@ + + EPS + + + + + Giropay + + + + + P24 + + + Codensa Easy Credit diff --git a/addons/payment/static/img/eps.png b/addons/payment/static/img/eps.png new file mode 100644 index 0000000000000000000000000000000000000000..71ca13055395c7edcfce338f4697b9b60992177b GIT binary patch literal 5935 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 tQzxYZmot)(|A|;s1a)ZeU literal 0 HcmV?d00001 diff --git a/addons/payment/static/img/giropay.png b/addons/payment/static/img/giropay.png new file mode 100644 index 0000000000000000000000000000000000000000..8869385fabb3734d18065b5f9b6beeb4dd3d1449 GIT binary patch literal 10372 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