From 968f16dd30aabbd2b5cb24ee519f38420d5404d6 Mon Sep 17 00:00:00 2001 From: Toufik Benjaa Date: Tue, 18 Sep 2018 18:14:10 +0200 Subject: [PATCH] [FIX] payment_ogone: set payment done with 3ds in pending mode - When receiving a 3DS payment notification from Ingenico the payment transaction should be set to "pending" and not in "done". Then a second notification is send by Ingenico to set the payment.transaction to "done". This is the reason for accepting "pending" as a valid state on the feedback validation. --- addons/payment_ogone/models/payment.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/payment_ogone/models/payment.py b/addons/payment_ogone/models/payment.py index 9e97854287c..f6439cb17d3 100644 --- a/addons/payment_ogone/models/payment.py +++ b/addons/payment_ogone/models/payment.py @@ -283,7 +283,7 @@ class PaymentTxOgone(models.Model): return invalid_parameters def _ogone_form_validate(self, data): - if self.state != 'draft': + if self.state not in ['draft', 'pending']: _logger.info('Ogone: trying to validate an already validated tx (ref %s)', self.reference) return True @@ -431,7 +431,7 @@ class PaymentTxOgone(models.Model): return self._ogone_s2s_validate_tree(tree) def _ogone_s2s_validate_tree(self, tree, tries=2): - if self.state != 'draft': + if self.state not in ['draft', 'pending']: _logger.info('Ogone: trying to validate an already validated tx (ref %s)', self.reference) return True @@ -469,7 +469,7 @@ class PaymentTxOgone(models.Model): if status == 46: # HTML 3DS vals['html_3ds'] = ustr(base64.b64decode(tree.HTML_ANSWER.text)) self.write(vals) - self._set_transaction_done() + self._set_transaction_pending() elif status in self._ogone_wait_tx_status and tries > 0: time.sleep(0.5) self.write({'acquirer_reference': tree.get('PAYID')})