From 48f02f32fc3c32812a391d1fa37d561a8ae55e74 Mon Sep 17 00:00:00 2001 From: Juan Carlos Montoya <juancarlos.montoya.chamba@gmail.com> Date: Mon, 28 Oct 2019 23:41:57 +0000 Subject: [PATCH] [FIX] payment_paypal: no transaction found The paypal payment flow was crashing because no transaction was found when the client wasn't connected. closes odoo/odoo#39408 Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com> --- addons/payment_paypal/controllers/main.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/payment_paypal/controllers/main.py b/addons/payment_paypal/controllers/main.py index e9a9dcb5e581..8f1b8fb6500a 100644 --- a/addons/payment_paypal/controllers/main.py +++ b/addons/payment_paypal/controllers/main.py @@ -59,7 +59,7 @@ class PaypalController(http.Controller): reference = post.get('item_number') tx = None if reference: - tx = request.env['payment.transaction'].search([('reference', '=', reference)]) + tx = request.env['payment.transaction'].sudo().search([('reference', '=', reference)]) paypal_url = tx.acquirer_id.paypal_get_form_action_url() pdt_request = bool(post.get('amt')) # check for specific pdt param if pdt_request: @@ -76,15 +76,15 @@ class PaypalController(http.Controller): _logger.info('Paypal: validated data') res = request.env['payment.transaction'].sudo().form_feedback(post, 'paypal') if not res and tx: - tx.sudo()._set_transaction_error('Validation error occured. Please contact your administrator.') + tx._set_transaction_error('Validation error occured. Please contact your administrator.') elif resp in ['INVALID', 'FAIL']: _logger.warning('Paypal: answered INVALID/FAIL on data verification') if tx: - tx.sudo()._set_transaction_error('Invalid response from Paypal. Please contact your administrator.') + tx._set_transaction_error('Invalid response from Paypal. Please contact your administrator.') else: _logger.warning('Paypal: unrecognized paypal answer, received %s instead of VERIFIED/SUCCESS or INVALID/FAIL (validation: %s)' % (resp, 'PDT' if pdt_request else 'IPN/DPN')) if tx: - tx.sudo()._set_transaction_error('Unrecognized error from Paypal. Please contact your administrator.') + tx._set_transaction_error('Unrecognized error from Paypal. Please contact your administrator.') return res @http.route('/payment/paypal/ipn/', type='http', auth='public', methods=['POST'], csrf=False) -- GitLab