diff options
| author | Thibault Delavallée <tde@odoo.com> | 2017-10-26 16:03:19 +0200 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2017-10-27 10:36:07 +0200 |
| commit | b72b10c1914a6a756e7eff53cd584cce706efb6e (patch) | |
| tree | f9e9e20a275fdfadeb6027640f3bcc5da02e8974 /addons/account_payment/controllers/payment.py | |
| parent | 4cc85168403971cb439fb0168582bb0408f4e4c1 (diff) | |
[FIX] (account, sale)_payment: fix URL generation in payment
Redirections are not correctly computed when the error or success urls
already contain some query parameters, like the access token. We now
use a function added in portal module that correctly computed the
redirection using standard werkzeug methods.
Diffstat (limited to 'addons/account_payment/controllers/payment.py')
| -rw-r--r-- | addons/account_payment/controllers/payment.py | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/addons/account_payment/controllers/payment.py b/addons/account_payment/controllers/payment.py index ecd331d2d9c..7427d768dad 100644 --- a/addons/account_payment/controllers/payment.py +++ b/addons/account_payment/controllers/payment.py @@ -1,9 +1,8 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from werkzeug import url_encode - from odoo import http, _ +from odoo.addons.portal.controllers.portal import _build_url_w_params from odoo.http import request, route @@ -68,7 +67,7 @@ class PaymentPortal(http.Controller): invoice_sudo = request.env['account.invoice'].sudo().browse(invoice_id) if not invoice_sudo: params['error'] = 'pay_invoice_invalid_doc' - return request.redirect('%s?%s' % (error_url, url_encode(params))) + return request.redirect(_build_url_w_params(error_url, params)) try: token = request.env['payment.token'].sudo().browse(int(pm_id)) @@ -76,7 +75,7 @@ class PaymentPortal(http.Controller): token = False if not token: params['error'] = 'pay_invoice_invalid_token' - return request.redirect('%s?%s' % (error_url, url_encode(params))) + return request.redirect(_build_url_w_params(error_url, params)) # find an existing tx or create a new one tx = request.env['payment.transaction'].sudo()._check_or_create_invoice_tx( @@ -97,7 +96,7 @@ class PaymentPortal(http.Controller): res = tx.confirm_invoice_token() if res is not True: params['error'] = res - return request.redirect('%s?%s' % (error_url, url_encode(params))) + return request.redirect(_build_url_w_params(error_url, params)) params['success'] = 'pay_invoice' - return request.redirect('%s?%s' % (success_url, url_encode(params))) + return request.redirect(_build_url_w_params(success_url, params)) |
