Exception control in return status

This commit is contained in:
vandekul
2020-09-11 12:31:35 +02:00
parent 363c4169dc
commit 01d2a36d37
+26 -26
View File
@@ -51,33 +51,33 @@ class BtcpayController(http.Controller):
""" BTCPay IPN. """ """ BTCPay IPN. """
cr, uid, context, env = request.cr, SUPERUSER_ID, request.context, request.env cr, uid, context, env = request.cr, SUPERUSER_ID, request.context, request.env
acquirer = request.env['payment.acquirer'].search([('provider', '=', 'btcpay')]) acquirer = request.env['payment.acquirer'].search([('provider', '=', 'btcpay')])
try:
#_logger.info('REQUEST JSONREQUEST %s',pprint.pformat(request.jsonrequest))
invoiceId = request.jsonrequest['data']['id']
client = BTCPayClient(host=acquirer.location, pem=acquirer.privateKey, tokens=acquirer.token)
self.invoice = client.get_invoice(invoiceId)
#_logger.info('SELF INVOICE IPN %s',pprint.pformat(self.invoice))
tx = None
if self.invoice['orderId']:
tx_ids = request.registry['payment.transaction'].search(cr, uid, [('reference', '=', self.invoice['orderId'])], context=context)
if tx_ids:
tx = request.registry['payment.transaction'].browse(cr, uid, tx_ids[0], context=context)
#_logger.info('REQUEST JSONREQUEST %s',pprint.pformat(request.jsonrequest)) tx.btcpay_status = self.invoice['status']
invoiceId = request.jsonrequest['data']['id'] if self.invoice['status'] in ['confirmed']:
tx.state = 'done'
client = BTCPayClient(host=acquirer.location, pem=acquirer.privateKey, tokens=acquirer.token) tx.sale_order_id.state = 'sale'
if not tx.btcpay_buyerMailNotification and acquirer.buyerNotification:
self.invoice = client.get_invoice(invoiceId) tx.sale_order_id.force_quotation_send()
#_logger.info('SELF INVOICE IPN %s',pprint.pformat(self.invoice)) tx.btcpay_buyerMailNotification = "Send"
tx.sale_order_id.order_line._action_procurement_create()
tx = None elif self.invoice['status'] in ['paid']:
if self.invoice['orderId']: tx.state = 'pending'
tx_ids = request.registry['payment.transaction'].search(cr, uid, [('reference', '=', self.invoice['orderId'])], context=context) tx.btcpay_invoiceId =self.invoice['id']
if tx_ids: tx.btcpay_txid =((((self.invoice['cryptoInfo'])[0])['payments'])[0])['id']
tx = request.registry['payment.transaction'].browse(cr, uid, tx_ids[0], context=context) except:
pass
tx.btcpay_status = self.invoice['status']
if self.invoice['status'] in ['confirmed']:
tx.state = 'done'
tx.sale_order_id.state = 'sale'
if not tx.btcpay_buyerMailNotification and acquirer.buyerNotification:
tx.sale_order_id.force_quotation_send()
tx.btcpay_buyerMailNotification = "Send"
tx.sale_order_id.order_line._action_procurement_create()
elif self.invoice['status'] in ['paid']:
tx.state = 'pending'
tx.btcpay_invoiceId =self.invoice['id']
tx.btcpay_txid =((((self.invoice['cryptoInfo'])[0])['payments'])[0])['id']
return '' return ''
@http.route(['/btcpay/checkout'], type='http', auth='none', csrf=None, website=True) @http.route(['/btcpay/checkout'], type='http', auth='none', csrf=None, website=True)