From 0c251a679079e7f0c562e5689375f623e6618ede Mon Sep 17 00:00:00 2001 From: susanna Date: Fri, 5 Nov 2021 11:57:07 +0100 Subject: [PATCH] Modify IPN error --- payment_btcpay/controller/main.py | 15 ++++++++------- payment_btcpay/tests/btcpay_test.py | 2 +- payment_btcpay/tests/btcpay_test_ipn.py | 12 ++++++++++++ 3 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 payment_btcpay/tests/btcpay_test_ipn.py diff --git a/payment_btcpay/controller/main.py b/payment_btcpay/controller/main.py index 7752f57..af853d5 100644 --- a/payment_btcpay/controller/main.py +++ b/payment_btcpay/controller/main.py @@ -45,22 +45,23 @@ _logger = logging.getLogger(__name__) class BtcpayController(http.Controller): _notify_url = '/payment/btcpay/ipn' - - @http.route('/payment/btcpay/ipn', type='json', auth='none') + @http.route('/payment/btcpay/ipn', type='json', auth='public', methods=['POST'], csrf=False) def btcpay_ipn(self, **post): """ BTCPay IPN. """ + _logger.info('IPN!!!') cr, uid, context, env = request.cr, SUPERUSER_ID, request.context, request.env - acquirer = request.env['payment.acquirer'].search([('provider', '=', 'btcpay')]) + acquirer = env['payment.acquirer'].search([('provider', '=', 'btcpay')]) try: - #_logger.info('REQUEST JSONREQUEST %s',pprint.pformat(request.jsonrequest)) + #_logger.info('IPN3!!!%s',pprint.pformat(request.jsonrequest['data']['id'])) invoiceId = request.jsonrequest['data']['id'] - client = BTCPayClient(host=acquirer.location, pem=acquirer.privateKey, tokens=acquirer.token) + _logger.info('Invoice ID: %s', invoiceId) + 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) + tx_ids = request.registry['payment.transaction'].search(cr, uid, [('reference', '=', self.invoice['orderId'])], context=contex if tx_ids: tx = request.registry['payment.transaction'].browse(cr, uid, tx_ids[0], context=context) diff --git a/payment_btcpay/tests/btcpay_test.py b/payment_btcpay/tests/btcpay_test.py index 7a59e1e..2c8741e 100644 --- a/payment_btcpay/tests/btcpay_test.py +++ b/payment_btcpay/tests/btcpay_test.py @@ -58,4 +58,4 @@ fetched_invoice = client.get_invoice(new_invoice['id']) print("FETCHED INVOICE: ", new_invoice['id']) -curl --no-keepalive --raw --show-error --verbose --connect-timeout 10 --insecure --max-redirs 1 -H "Content-Type: application/json" -d '{"data": "{"id":"P38S4ewSvvLoRrBSoEiMTz"}"}" http://odoo-dev.zynthian.org/payment/btcpay/ipn \ No newline at end of file +curl --no-keepalive --raw --show-error --verbose --connect-timeout 10 --insecure --max-redirs 1 -H "Content-Type: application/json" -d '{"data": "{"id":"8vQMp1C6gB1DxUyJB9gcBp"}"}" http://odoo-dev.zynthian.org/payment/btcpay/ipn \ No newline at end of file diff --git a/payment_btcpay/tests/btcpay_test_ipn.py b/payment_btcpay/tests/btcpay_test_ipn.py new file mode 100644 index 0000000..70a3d9f --- /dev/null +++ b/payment_btcpay/tests/btcpay_test_ipn.py @@ -0,0 +1,12 @@ +import requests +import json + +url = 'https://odoo-dev.zynthian.org/payment/btcpay/ipn' +headers = {'Content-Type': 'application/json'} +data = { + "data": { + "id":"8vQMp1C6gB1DxUyJB9gcBp", + } +} +data_json = json.dumps(data) +r = requests.post(url=url, data=data_json, headers=headers) \ No newline at end of file