[FIX] payment_ogone: correctly handle tx error status

Transaction status "0" is explicitly defined for
invalid or incomplete transactions. It must not be
treated as a delayed status, but as a permanent
failure.

Ref: https://payment-services.ingenico.com/int/en/ogone/support/guides/user%20guides/statuses-and-errors/statuses

In addition, the delay for re-checking a delayed
transaction status was not meant to be set to
500 seconds but to 500 milli-seconds.
This commit is contained in:
Olivier Dony
2016-08-09 14:24:17 +02:00
parent 5443d47cbf
commit 34e7deb0d4
+2 -2
View File
@@ -422,8 +422,8 @@ class PaymentTxOgone(osv.Model):
'acquirer_reference': tree.get('PAYID'),
'html_3ds': str(tree.HTML_ANSWER).decode('base64')
})
elif (not status or status in self._ogone_wait_tx_status) and tries > 0:
time.sleep(500)
elif status in self._ogone_wait_tx_status and tries > 0:
time.sleep(0.5)
tx.write({'acquirer_reference': tree.get('PAYID')})
tree = self._ogone_s2s_get_tx_status(tx)
return self._ogone_s2s_validate_tree(tx, tree, tries - 1)