From 01d2a36d3733f3f823abfb77e23abddabcf60918 Mon Sep 17 00:00:00 2001 From: vandekul Date: Fri, 11 Sep 2020 12:31:35 +0200 Subject: [PATCH] Exception control in return status --- payment_btcpay/controller/main.py | 52 +++++++++++++++---------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/payment_btcpay/controller/main.py b/payment_btcpay/controller/main.py index 6a8615e..7752f57 100644 --- a/payment_btcpay/controller/main.py +++ b/payment_btcpay/controller/main.py @@ -51,33 +51,33 @@ class BtcpayController(http.Controller): """ BTCPay IPN. """ cr, uid, context, env = request.cr, SUPERUSER_ID, request.context, request.env 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)) - 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) - - 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'] + 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'] + except: + pass return '' @http.route(['/btcpay/checkout'], type='http', auth='none', csrf=None, website=True)