diff --git a/addons/payment_stripe/static/src/js/stripe.js b/addons/payment_stripe/static/src/js/stripe.js index e4474fe72ce..956765e8042 100644 --- a/addons/payment_stripe/static/src/js/stripe.js +++ b/addons/payment_stripe/static/src/js/stripe.js @@ -87,74 +87,30 @@ odoo.define('payment_stripe.stripe', function(require) { payment_form.append(''); payment_form.attr('disabled','disabled'); - var acquirer_id = payment_form.find('input[type="radio"][data-provider="stripe"]:checked').data('acquirer-id'); - if (! acquirer_id) { - return false; - } - + var payment_tx_url = payment_form.find('input[name="prepare_tx_url"]').val(); var access_token = $("input[name='access_token']").val() || $("input[name='token']").val() || ''; - var so_id = $("input[name='return_url']").val().match(/quote\/([0-9]+)/) || undefined; - if (so_id) { - so_id = parseInt(so_id[1]); - } - var invoice_id = $("input[name='return_url']").val().match(/invoices\/([0-9]+)/) || undefined; - if (invoice_id) { - invoice_id = parseInt(invoice_id[1]); + + var get_input_value = function(name) { + return provider_form.find('input[name="' + name + '"]').val(); } - var currency = $("input[name='currency']").val(); - var currency_id = $("input[name='currency_id']").val(); - var amount = parseFloat($("input[name='amount']").val() || '0.0'); + var acquirer_id = parseInt(provider_form.find('#acquirer_stripe').val()); + var amount = parseFloat(get_input_value("amount") || '0.0'); + var currency = get_input_value("currency"); + var email = get_input_value("email"); + var invoice_num = get_input_value("invoice_num"); + var merchant = get_input_value("merchant"); - - if ($('.o_website_payment').length !== 0) { - var invoice_num = $("input[name='invoice_num']").val(); - var url = _.str.sprintf("/website_payment/transaction/v2/%f/%s/%s", - amount, currency_id, invoice_num); - - var create_tx = ajax.jsonRpc(url, 'call', { - acquirer_id: acquirer_id - }).then(function (data) { - try { provider_form[0].innerHTML = data; } catch (e) {} - }); - } - else if ($('.o_website_quote').length !== 0) { - var url = _.str.sprintf("/quote/%s/transaction/", so_id); - var create_tx = ajax.jsonRpc(url, 'call', { - access_token: access_token, - acquirer_id: acquirer_id - }).then(function (data) { - try { provider_form[0].innerHTML = data; } catch (e) {}; - }); - } else if (window.location.href.includes("/my/orders/")) { - var create_tx = ajax.jsonRpc('/pay/sale/' + so_id + '/form_tx/', 'call', { - access_token: access_token, - acquirer_id: acquirer_id - }).then(function (data) { - try { provider_form.innerHTML = data; } catch (e) {}; - }); - } else if (window.location.href.includes("/my/invoices/")) { - var create_tx = ajax.jsonRpc('/invoice/pay/' + invoice_id + '/form_tx/', 'call', { - access_token: access_token, - acquirer_id: acquirer_id - }).then(function (data) { - try { provider_form.innerHTML = data; } catch (e) {}; - }); - } - else { - var create_tx = ajax.jsonRpc('/shop/payment/transaction/' + acquirer_id, 'call', { - so_id: so_id, - access_token: access_token, - acquirer_id: acquirer_id - }).then(function (data) { - try { provider_form.innerHTML = data; } catch (e) {}; - }); - } - create_tx.done(function () { + ajax.jsonRpc(payment_tx_url, 'call', { + acquirer_id: acquirer_id, + access_token: access_token, + }).then(function(data) { + try { provider_form[0].innerHTML = data; } catch (e) {}; + }).done(function () { getStripeHandler().open({ - name: $("input[name='merchant']").val(), - description: $("input[name='invoice_num']").val(), - email: $("input[name='email']").val(), + name: merchant, + description: invoice_num, + email: email, currency: currency, amount: _.contains(int_currencies, currency) ? amount : amount * 100, });