[FIX] payment_(adyen,authorize,stripe): unique key for inline form values

closes odoo/odoo#140711

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
This commit is contained in:
Antoine Vandevenne (anv)
2023-11-06 15:36:51 +00:00
parent b024dd76d4
commit 181e2bdbde
6 changed files with 12 additions and 7 deletions
@@ -47,8 +47,7 @@ paymentForm.include({
// Extract and deserialize the inline form values.
const radio = document.querySelector('input[name="o_payment_radio"]:checked');
const inlineFormValues = JSON.parse(radio.dataset['inlineFormValues']);
const formatted_amount = inlineFormValues['formatted_amount'];
const inlineFormValues = JSON.parse(radio.dataset['adyenInlineFormValues']);
const formattedAmount = inlineFormValues['formatted_amount'];
// Create the checkout object if not already done for another payment method.
@@ -18,7 +18,7 @@
<template id="payment_adyen.method_form" inherit_id="payment.method_form">
<xpath expr="//input[@name='o_payment_radio']" position="attributes">
<attribute name="t-att-data-inline-form-values">
<attribute name="t-att-data-adyen-inline-form-values">
provider_sudo._adyen_get_inline_form_values(pm_sudo.code, amount, currency)
</attribute>
</xpath>
@@ -47,7 +47,9 @@ paymentForm.include({
const radio = document.querySelector('input[name="o_payment_radio"]:checked');
const inlineForm = this._getInlineForm(radio);
const authorizeForm = inlineForm.querySelector('[name="o_authorize_form"]');
this.authorizeData[paymentOptionId] = JSON.parse(authorizeForm.dataset['inlineFormValues']);
this.authorizeData[paymentOptionId] = JSON.parse(
authorizeForm.dataset['authorizeInlineFormValues']
);
let acceptJSUrl = 'https://js.authorize.net/v1/Accept.js';
if (this.authorizeData[paymentOptionId].state !== 'enabled') {
acceptJSUrl = 'https://jstest.authorize.net/v1/Accept.js';
@@ -4,7 +4,7 @@
<template id="inline_form">
<div name="o_authorize_form"
class="o_authorize_form"
t-att-data-inline-form-values="provider_sudo._authorize_get_inline_form_values()"
t-att-data-authorize-inline-form-values="provider_sudo._authorize_get_inline_form_values()"
>
<t t-if="pm_sudo.code == 'card'">
<div class="mb-3">
@@ -44,7 +44,9 @@ paymentForm.include({
const radio = document.querySelector('input[name="o_payment_radio"]:checked');
const inlineForm = this._getInlineForm(radio);
const stripeInlineForm = inlineForm.querySelector('[name="o_stripe_element_container"]');
this.stripeInlineFormValues = JSON.parse(stripeInlineForm.dataset['inlineFormValues']);
this.stripeInlineFormValues = JSON.parse(
stripeInlineForm.dataset['stripeInlineFormValues']
);
// Instantiate the elements.
let elementsOptions = {
@@ -11,7 +11,9 @@
sale_order_id=sale_order_id,
)"
/>
<div name="o_stripe_element_container" t-att-data-inline-form-values="inline_form_values"/>
<div name="o_stripe_element_container"
t-att-data-stripe-inline-form-values="inline_form_values"
/>
</template>
<template id="express_checkout_form">