summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorNikunj Ladava <nla@odoo.com>2019-05-08 06:44:18 +0000
committerNikunj Ladava <nla@odoo.com>2019-05-08 07:05:11 +0000
commit0aefe72b773a21bdd38fdc86779d3030bd5127c6 (patch)
tree132ffeed5ee9cc9b6f89c355ee51a2a70b0a80af /addons
parent2cc7f0dd49a6be1920cef232e6c010fbafa68270 (diff)
[FIX] payment_alipay: improvement as per the current payment
No need of return URL as '/payment/process' will handle all the cases for payment. use of _set_transaction_state as per the state of the transaction. closes - https://github.com/odoo/odoo/pull/33231
Diffstat (limited to 'addons')
-rw-r--r--addons/payment_alipay/controllers/main.py4
-rw-r--r--addons/payment_alipay/models/payment.py12
2 files changed, 9 insertions, 7 deletions
diff --git a/addons/payment_alipay/controllers/main.py b/addons/payment_alipay/controllers/main.py
index 3f1b4e1e40c..1f28217cabc 100644
--- a/addons/payment_alipay/controllers/main.py
+++ b/addons/payment_alipay/controllers/main.py
@@ -50,11 +50,11 @@ class AlipayController(http.Controller):
return ""
@http.route('/payment/alipay/return', type='http', auth="none", methods=['GET', 'POST'])
- def alipay_return(self, redirect_url=False, **post):
+ def alipay_return(self, **post):
""" Alipay return """
_logger.info('Beginning Alipay form_feedback with post data %s', pprint.pformat(post))
self._alipay_validate_data(**post)
- return werkzeug.utils.redirect(redirect_url or "/")
+ return werkzeug.utils.redirect('/payment/process')
@http.route('/payment/alipay/notify', type='http', auth='none', methods=['POST'], csrf=False)
def alipay_notify(self, **post):
diff --git a/addons/payment_alipay/models/payment.py b/addons/payment_alipay/models/payment.py
index 7f133b4d31f..83783fc0ccb 100644
--- a/addons/payment_alipay/models/payment.py
+++ b/addons/payment_alipay/models/payment.py
@@ -80,13 +80,12 @@ class PaymentAcquirer(models.Model):
def _get_alipay_tx_values(self, values):
base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url')
- tx = self.env['payment.transaction'].search([('reference', '=', values.get('reference'))], limit=1)
alipay_tx_values = ({
'_input_charset': 'utf-8',
'notify_url': urls.url_join(base_url, AlipayController._notify_url),
'out_trade_no': values.get('reference'),
'partner': self.alipay_merchant_partner_id,
- 'return_url': urls.url_join(base_url, AlipayController._return_url) + '?' + urls.url_encode({'redirect_url': values.get('return_url')}),
+ 'return_url': urls.url_join(base_url, AlipayController._return_url),
'subject': values.get('reference'),
'total_fee': values.get('amount') + values.get('fees'),
})
@@ -213,16 +212,19 @@ class PaymentTransaction(models.Model):
if status in ['TRADE_FINISHED', 'TRADE_SUCCESS']:
_logger.info('Validated Alipay payment for tx %s: set as done' % (self.reference))
date_validate = fields.Datetime.now()
- res.update(state='done', date=date_validate)
+ res.update(date=date_validate)
+ self._set_transaction_done()
self.write(res)
self.execute_callback()
return True
elif status == 'TRADE_CLOSED':
_logger.info('Received notification for Alipay payment %s: set as Canceled' % (self.reference))
- res.update(state='cancel', state_message=data.get('close_reason', ''))
+ res.update(state_message=data.get('close_reason', ''))
+ self._set_transaction_cancel()
return self.write(res)
else:
error = 'Received unrecognized status for Alipay payment %s: %s, set as error' % (self.reference, status)
_logger.info(error)
- res.update(state='error', state_message=error)
+ res.update(state_message=error)
+ self._set_transaction_error()
return self.write(res)