btcpayserver / woocommerce-plugin

Plugin for connecting Woocommerce with BTCPayServer
https://btcpayserver.org/
Other
51 stars 41 forks source link

EDIT: ADD HTTP SUPPORT! | Woocomerce: Spinner of death (Previous name) #56

Closed snaildos closed 3 years ago

snaildos commented 3 years ago

Describe the bug Here is what I have. I have BTCPAYSERVER in a docker container, I then have a reverse proxy on the host machine picking up that container, and passing it (reverse proxy) to a domain. When going to the plugin payment area, typing in my btcpay server adress, pressing pair, I get the "pairing code" and put it into the the text box on the woocemerce site. I press "Pair", It loads. And it never stops loading. image

To Reproduce the bug Steps to reproduce the reported bug: Already labled.

Expected behavior To load and actually pair.

Screenshots Already supplied.

Your BTCPay Environment (please complete the following information): Connecting from Google Chrome. (Thru reverse proxy) Logs (if applicable) I found one error. 2020-12-23 02:54:34.342 +00:00 [ERR] An exception was thrown while deserializing the token. Microsoft.AspNetCore.Antiforgery.AntiforgeryValidationException: The antiforgery token could not be decrypted. ---> System.Security.Cryptography.CryptographicException: The key {cba85896-dd2d-4985-ac3d-2d3cdb126c23} was not found in the key ring. at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.UnprotectCore(Byte[] protectedData, Boolean allowOperationsOnRevokedKeys, UnprotectStatus& status) at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.DangerousUnprotect(Byte[] protectedData, Boolean ignoreRevocationErrors, Boolean& requiresMigration, Boolean& wasRevoked) at Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.Unprotect(Byte[] protectedData) at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgeryTokenSerializer.Deserialize(String serializedToken) --- End of inner exception stack trace --- at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgeryTokenSerializer.Deserialize(String serializedToken) at Microsoft.AspNetCore.Antiforgery.DefaultAntiforgery.GetCookieTokenDoesNotThrow(HttpContext httpContext)

Setup Parameters

Additional context

snaildos commented 3 years ago

It's still loading to this hour.

pavlenex commented 3 years ago

@snaildos have you tried pairing your woocommerce with a third-party host for testing https://docs.btcpayserver.org/deployment/thirdpartyhosting ? This was you can isolate if the error is on server side or plugin/browser/woordpress.

snaildos commented 3 years ago

Can confirm, it is the plugin. image I used a community server. image

snaildos commented 3 years ago

No matter what WP version I use, Or WOOCOMMERCE version, It will not work. At all. This is definatly a plugin problem.

snaildos commented 3 years ago

I even downgraded plugin versions, IT'S STILL BROKEN!

pavlenex commented 3 years ago

Can't replicate, probably a security plug-in on your site blocking something or a plugin conflict, disable plugins one by one to see which one is causing the issue, but my bet is it's a security setting of some sort.

My setup below.

https://mainnet.demo.btcpayserver.org

### WordPress Environment ###
WC Version: 4.8.0
REST API Version: ✔ 4.8.0
WC Blocks Version: ✔ 3.8.1
Action Scheduler Version: ✔ 3.1.6
WC Admin Version: ✔ 1.7.3
Log Directory Writable: ✔
WP Version: 5.6
WP Multisite: –
WP Memory Limit: 256 MB
WP Debug Mode: –
WP Cron: ✔
Language: en_US
External object cache: –

### Server Environment ###

Server Info: Apache/2.4.25 (Debian)
PHP Version: 7.2.15
PHP Post Max Size: 100 MB
PHP Time Limit: 30
PHP Max Input Vars: 1000
cURL Version: 7.52.1
OpenSSL/1.0.2q
snaildos commented 3 years ago

Alright, Well, I dont have any other plugins either then this. So.... I don't know how that works. ALL I KNOW, is that wordpress CANNOT write to a directory. (CHMOD THING). Does this write to any files?

snaildos commented 3 years ago

I just reinstalled word press and it still happens. Using NGINX. https://btcpaymerchant.com/ Using this site. Latest plugins Latest WP Not working.

snaildos commented 3 years ago

`

WordPress Environment

WordPress address (URL): http://redacted Site address (URL): http://redacted WC Version: 4.8.0 REST API Version: ✔ 4.8.0 WC Blocks Version: ✔ 3.8.1 Action Scheduler Version: ✔ 3.1.6 WC Admin Version: ✔ 1.7.3 Log Directory Writable: ❌ To allow logging make /usr/share/nginx/a/wp-content/uploads/wc-logs/ writable or define a custom WC_LOG_DIR.

WP Version: 5.6 WP Multisite: – WP Memory Limit: 256 MB WP Debug Mode: – WP Cron: ✔ Language: en_US External object cache: –

Server Environment

Server Info: nginx/1.18.0 PHP Version: 7.4.3 PHP Post Max Size: 8 MB PHP Time Limit: 30 PHP Max Input Vars: 1000 cURL Version: 7.68.0 OpenSSL/1.1.1f

SUHOSIN Installed: – MySQL Version: 5.5.5-10.3.25-MariaDB-0ubuntu0.20.04.1 Max Upload Size: 2 MB Default Timezone is UTC: ✔ fsockopen/cURL: ✔ SoapClient: ❌ Your server does not have the SoapClient class enabled - some gateway plugins which use SOAP may not work as expected. DOMDocument: ✔ GZip: ✔ Multibyte String: ✔ Remote Post: ✔ Remote Get: ✔

Database

WC Database Version: 4.8.0 WC Database Prefix: wp_ Total Database Size: 3.72MB Database Data Size: 2.34MB Database Index Size: 1.38MB wp_woocommerce_sessions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_api_keys: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_attribute_taxonomies: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_downloadable_product_permissions: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_woocommerce_order_items: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_order_itemmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_tax_rates: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_woocommerce_tax_rate_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_shipping_zones: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_woocommerce_shipping_zone_locations: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_shipping_zone_methods: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_woocommerce_payment_tokens: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_woocommerce_payment_tokenmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_woocommerce_log: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_actions: Data: 0.02MB + Index: 0.11MB + Engine InnoDB wp_actionscheduler_claims: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_groups: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_actionscheduler_logs: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_commentmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_comments: Data: 0.02MB + Index: 0.09MB + Engine InnoDB wp_links: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_options: Data: 1.50MB + Index: 0.03MB + Engine InnoDB wp_postmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_posts: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_termmeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_terms: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_term_relationships: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_term_taxonomy: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_usermeta: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_users: Data: 0.02MB + Index: 0.05MB + Engine InnoDB wp_wc_admin_notes: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_admin_note_actions: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_category_lookup: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_customer_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_download_log: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_order_coupon_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_order_product_lookup: Data: 0.02MB + Index: 0.06MB + Engine InnoDB wp_wc_order_stats: Data: 0.02MB + Index: 0.05MB + Engine InnoDB wp_wc_order_tax_lookup: Data: 0.02MB + Index: 0.03MB + Engine InnoDB wp_wc_product_meta_lookup: Data: 0.02MB + Index: 0.09MB + Engine InnoDB wp_wc_reserved_stock: Data: 0.02MB + Index: 0.00MB + Engine InnoDB wp_wc_tax_rate_classes: Data: 0.02MB + Index: 0.02MB + Engine InnoDB wp_wc_webhooks: Data: 0.02MB + Index: 0.02MB + Engine InnoDB

Post Type Counts

page: 6 post: 2

Security

Secure connection (HTTPS): ❌ Your store is not using HTTPS. Learn more about HTTPS and SSL Certificates. Hide errors from visitors: ✔

Active Plugins (2)

BTCPay for WooCommerce: by BTCPay – 3.0.11 – Installed version not tested with active version of WooCommerce 4.0 WooCommerce: by Automattic – 4.8.0

Inactive Plugins (0)

Settings

API Enabled: – Force SSL: – Currency: GBP (£) Currency Position: left Thousand Separator: , Decimal Separator: . Number of Decimals: 2 Taxonomies: Product Types: external (external) grouped (grouped) simple (simple) variable (variable)

Taxonomies: Product Visibility: exclude-from-catalog (exclude-from-catalog) exclude-from-search (exclude-from-search) featured (featured) outofstock (outofstock) rated-1 (rated-1) rated-2 (rated-2) rated-3 (rated-3) rated-4 (rated-4) rated-5 (rated-5)

Connected to WooCommerce.com: –

WC Pages

Shop base: #5 - /?page_id=5 Cart: #6 - /?page_id=6 Checkout: #7 - /?page_id=7 My account: #8 - /?page_id=8 Terms and conditions: ❌ Page not set

Theme

Name: Twenty Twenty-One Version: 1.0 (update to version 1.1 is available) Author URL: https://wordpress.org/ Child Theme: ❌ – If you are modifying WooCommerce on a parent theme that you did not build personally we recommend using a child theme. See: How to create a child theme WooCommerce Support: ✔

Templates

Overrides: –

Action Scheduler

Pending: 1 Oldest: 2020-12-24 13:06:19 +0000 Newest: 2020-12-24 13:06:19 +0000

`

pavlenex commented 3 years ago

I am not sure you may want to check into what can be blocking it, considering your earlier post about custom machine setup, it could be something on server-side firewall blocking or similar. I couldn't replicate the issue you are having. Also it seems you're not using HTTPS, could be that, but not 100% sure.

snaildos commented 3 years ago

Oh.. ye... HTTPS, your right. I have HTTPS tho when I go on the site? I think it's cloudflare automatically signing it, but client side only. I'll quickly throw a certificate in there. And pray to god this works.

snaildos commented 3 years ago

LMFAO IT WORKS! IT LITTERALLY WORKS, JUST BECAUSE OF HTTPS, OMFG LMFAO tysm

snaildos commented 3 years ago

I am back, with annoying news, I have migrated everything too docker, oh whoops! That's right! No http support! Developers... This, needs to be fixed. Not even joking.

snaildos commented 3 years ago

I'd hope too see the feature in the future, but, I have resolved the problem.