diff --git a/catalog/controller/payment/btcpay.php b/catalog/controller/payment/btcpay.php index 88531fd..a5291f1 100644 --- a/catalog/controller/payment/btcpay.php +++ b/catalog/controller/payment/btcpay.php @@ -25,6 +25,13 @@ public function index(): string true ); + if (isset($this->session->data['error_warning'])) { + $data['error_warning'] = $this->session->data['error_warning']; + unset($this->session->data['error_warning']); + } else { + $data['error_warning'] = ''; + } + if ($useModal) { $host = $this->config->get('payment_btcpay_url'); $data['btcpay_host'] = $host; @@ -63,6 +70,16 @@ public function checkout(): void $this->session->data['order_id'] ); + if (empty($order_info)) { + if ($debug) { + $this->log->write('Could not load order passed by session, order id: ' . $this->session->data['order_id']); + } + $this->session->data['error_warning'] = $this->language->get('session_checkout_order_error'); + $this->response->redirect( + $this->url->link('checkout/checkout', '', true) + ); + } + $invoiceId = ''; $checkoutLink = ''; diff --git a/catalog/language/en-gb/payment/btcpay.php b/catalog/language/en-gb/payment/btcpay.php index 3a2f0f4..4148941 100644 --- a/catalog/language/en-gb/payment/btcpay.php +++ b/catalog/language/en-gb/payment/btcpay.php @@ -6,3 +6,4 @@ $_['invoice_closed_text'] = 'Payment aborted. Please try again or choose a different payment method.'; $_['invoice_failed_text'] = 'Payment aborted. Error processing the request. Please contact store owner if the problem persists.'; $_['order_payment_link'] = 'You can check your payment status here: '; +$_['session_checkout_order_error'] = 'Your cart order id could not be found, please try to log out and in again.'; diff --git a/catalog/view/template/payment/btcpay.twig b/catalog/view/template/payment/btcpay.twig index 4a191dd..20a7a8c 100644 --- a/catalog/view/template/payment/btcpay.twig +++ b/catalog/view/template/payment/btcpay.twig @@ -1,3 +1,6 @@ +{% if error_warning %} +
{{ error_warning }}
+{% endif %}
diff --git a/catalog/view/template/payment/btcpay_modal.twig b/catalog/view/template/payment/btcpay_modal.twig index 58021f6..7919400 100644 --- a/catalog/view/template/payment/btcpay_modal.twig +++ b/catalog/view/template/payment/btcpay_modal.twig @@ -13,6 +13,8 @@ if (data.invoiceId !== undefined) { window.btcpay.setApiUrlPrefix('{{ btcpay_host }}'); window.btcpay.showInvoice(data.invoiceId); + } else { + showError('{{ invoice_failed_text }}'); } let invoice_paid = false; window.btcpay.onModalReceiveMessage(function (event) { diff --git a/install.json b/install.json index a985700..4872ba8 100644 --- a/install.json +++ b/install.json @@ -1,6 +1,6 @@ { "name": "BTCPay Server payment gateway", - "version": "4.2.1", + "version": "4.2.2", "license": "MIT", "author": "BTCPay Server", "link": "https://btcpayserver.org" diff --git a/system/library/btcpay/version.php b/system/library/btcpay/version.php index d906445..480781d 100644 --- a/system/library/btcpay/version.php +++ b/system/library/btcpay/version.php @@ -1,3 +1,3 @@