From 0db39e356417023a470ed874adc8ef959cb265fe Mon Sep 17 00:00:00 2001 From: Valentin Chevalier Date: Thu, 24 Mar 2022 16:05:47 +0000 Subject: [PATCH] [ADD] payment_acquirers/adyen: add doc configuration of Adyen Following a technical task regarding the migration of the Adyen hosted payment page integration to Adyen PayByLink, some new parameters have been introduced and some have been removed. This new addition to the documentation will help users configure their acquirer. task-2802921 closes odoo/documentation#1737 Signed-off-by: Antoine Vandevenne (anv) --- .../finance/payment_acquirers.rst | 4 +- .../finance/payment_acquirers/adyen.rst | 88 ++++++++++++++++++ .../payment_acquirers/adyen/add-webhook.png | Bin 0 -> 13159 bytes .../payment_acquirers/adyen/api-urls.png | Bin 0 -> 6139 bytes .../adyen/install_pay_by_link_patch.rst | 55 +++++++++++ .../payment_acquirers/adyen/webhook-url.png | Bin 0 -> 5025 bytes 6 files changed, 146 insertions(+), 1 deletion(-) create mode 100644 content/applications/finance/payment_acquirers/adyen.rst create mode 100644 content/applications/finance/payment_acquirers/adyen/add-webhook.png create mode 100644 content/applications/finance/payment_acquirers/adyen/api-urls.png create mode 100644 content/applications/finance/payment_acquirers/adyen/install_pay_by_link_patch.rst create mode 100644 content/applications/finance/payment_acquirers/adyen/webhook-url.png diff --git a/content/applications/finance/payment_acquirers.rst b/content/applications/finance/payment_acquirers.rst index 2b70cb8cc..6b0ff4182 100644 --- a/content/applications/finance/payment_acquirers.rst +++ b/content/applications/finance/payment_acquirers.rst @@ -8,6 +8,7 @@ Payment Acquirers (Credit Cards, Online Payment) :titlesonly: payment_acquirers/wire_transfer + payment_acquirers/adyen payment_acquirers/authorize payment_acquirers/paypal payment_acquirers/stripe @@ -63,7 +64,8 @@ Online Payment Providers | | Redirection to | Payment | Save Cards | Capture Amount | | | the acquirer website | from Odoo | | Manually | +=====================================+======================+===========+============+=================+ -| Adyen | ✔ | | | | +| :doc:`Adyen | ✔ | | | | +| ` | | | | | +-------------------------------------+----------------------+-----------+------------+-----------------+ | Alipay | ✔ | | | | +-------------------------------------+----------------------+-----------+------------+-----------------+ diff --git a/content/applications/finance/payment_acquirers/adyen.rst b/content/applications/finance/payment_acquirers/adyen.rst new file mode 100644 index 000000000..a22a63ebf --- /dev/null +++ b/content/applications/finance/payment_acquirers/adyen.rst @@ -0,0 +1,88 @@ +:show-content: + +===== +Adyen +===== + +.. toctree:: + :titlesonly: + + adyen/install_pay_by_link_patch + +`Adyen `_ is a Dutch company that offers several online payment +possibilities. + +.. seealso:: + - :doc:`adyen/install_pay_by_link_patch` + - :ref:`payment_acquirers/add_new` + - :doc:`../payment_acquirers` + +Configuration +============= + +Credentials tab +--------------- + +Odoo needs your **API Credentials** to connect with your Adyen account, which comprise: + +- **Merchant Account**: The code of the merchant account to use with Adyen. +- :ref:`API Key `: The API key of the webservice user. +- :ref:`HMAC Key `: The HMAC key of the webhook. +- :ref:`Checkout API URL `: The base URL for the Checkout API endpoints. + +You can copy your credentials from your Adyen account, and paste them in the related fields under +the **Credentials** tab. + +.. important:: + If you are trying Adyen as a test, with a *test account*, change the **State** to *Test Mode*. We + recommend doing this on a test Odoo database, rather than on your main database. + +.. _adyen/api_key: + +API Key +~~~~~~~ + +In order to retrieve the API Key, log into your Adyen account, go to +:menuselection:`Developers --> API Credentials`. +- If you already have an API user, open it. +- If you don't have an API user yet, click on **Create new credential**. +Go to :menuselection:`Authentication` and get or generate your **API Key**. Be careful to copy your +API key as you'll not be allowed to get it later without generating a new one. + +.. _adyen/hmac_key: + +HMAC key +~~~~~~~~ + +In order to retrieve the HMAC Key, you'll need to configure a `Standard Notification` webhook. For +this, log into your Adyen account then go to :menuselection:`Developers --> Webhooks --> Add webhook +--> Add Standard notification`. + +.. image:: adyen/add-webhook.png + :align: center + :alt: Configure a webhook. + +There, in :menuselection:`General --> Server Configuration --> URL`, enter your server address +followed by `/payment/adyen/notification` and in :menuselection:`General --> Server Configuration +--> Method`, select `HTTP Post`. + +.. image:: adyen/webhook-url.png + :align: center + :alt: Enter the notification URL. + +Then continue in :menuselection:`Security --> HMAC Key --> Generate new HMAC key`. Be +careful to copy it as you'll not be allowed to get it later without generating a new one. + +You have to save the webhook to finalize its creation. + +.. _adyen/urls: + +URLs +~~~~ + +To retrieve the URLs, log into your Adyen account, go to :menuselection:`Developers --> API URLs`. +Pick one of the URLs listed next to **Checkout API** as your **Checkout API URL**. + +.. image:: adyen/api-urls.png + :align: center + :alt: Get the links for the different API. \ No newline at end of file diff --git a/content/applications/finance/payment_acquirers/adyen/add-webhook.png b/content/applications/finance/payment_acquirers/adyen/add-webhook.png new file mode 100644 index 0000000000000000000000000000000000000000..23c3444bdbab015ca4c83343b97d6c952f47e69c GIT binary patch literal 13159 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

Fac9kMzGFwCJq$XYzR1r|kQwdz{sBnAB{T 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 literal 0 HcmV?d00001 diff --git a/content/applications/finance/payment_acquirers/adyen/install_pay_by_link_patch.rst b/content/applications/finance/payment_acquirers/adyen/install_pay_by_link_patch.rst new file mode 100644 index 000000000..c883616e5 --- /dev/null +++ b/content/applications/finance/payment_acquirers/adyen/install_pay_by_link_patch.rst @@ -0,0 +1,55 @@ +=================================== +Install the Adyen Pay by Link Patch +=================================== + +Starting October 2022, due to `Adyen deprecating their Hosted Payment Page solution +`_, +:doc:`Adyen <../adyen>` needs to be updated to continue accepting payments. + +.. note:: + If your Odoo database is created after the update was released, the update module is installed + automatically. To check if this module is already installed, go to :guilabel:`Apps`, remove the + ``Apps`` filter and search for ``Adyen``. If the module :guilabel:`Adyen Payment + Acquirer/Pay by Link Patch` is present and marked as installed, your Odoo database is already + up-to-date and you can proceed with the configuration step of :doc:`Adyen <../adyen>`. + +Update Odoo to the latest release +================================= + +The new integration is made available through a new Odoo module; to be able to install it, you must +make sure that your Odoo source code is up-to-date. + +If you use Odoo on Odoo.com or Odoo.sh platform, your code is already up-to-date and +you can proceed to the next step. + +If you use Odoo with an on-premise setup or through a partner, then you must update +your installation as detailed in +:doc:`this documentation page ` +or by contacting your integrating partner. + +Update the list of available modules +==================================== + +New modules must be *discovered* by your Odoo instance to be available in the **Apps** +menu. + +To do so, activate the :ref:`developer mode `, and go to :menuselection:`Apps --> +Update Apps List`. A wizard will ask for confirmation. + +Install the Adyen Payment Acquirer/Pay by Link Patch +==================================================== + +.. warning:: + You should never install new modules in your production database without first testing them in a + duplicate or staging environment. For Odoo.com customers, a duplicate database can be created + from the database management page. For Odoo.sh users, you should use a staging or duplicate + database. For on-premise users, you should use a staging environment---contact your integrating + partner for more information regarding how to test a new module in your particular setup. + +The module should now be available in your :guilabel:`Apps` menu. Remove the ``Apps`` filter and +search for ``Adyen``; the module :guilabel:`Adyen Payment Acquirer/Pay by Link Patch` should be +available for installation. If you cannot find the module after having updated the list of available +modules, it means your Odoo source code is not up-to-date; refer to step one of this page. + +Once the module is installed, configure your acquirer following the instructions on the +:doc:`Adyen <../adyen>` page. diff --git a/content/applications/finance/payment_acquirers/adyen/webhook-url.png b/content/applications/finance/payment_acquirers/adyen/webhook-url.png new file mode 100644 index 0000000000000000000000000000000000000000..4d0091ef049456ea831a120caecff149ff3a5980 GIT binary patch literal 5025 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