Changeset 2956798
- Timestamp:
- 08/22/2023 12:57:52 PM (3 years ago)
- Location:
- btcpay-greenfield-for-woocommerce
- Files:
-
- 12 edited
- 1 copied
-
tags/2.2.3 (copied) (copied from btcpay-greenfield-for-woocommerce/trunk)
-
tags/2.2.3/btcpay-greenfield-for-woocommerce.php (modified) (5 diffs)
-
tags/2.2.3/readme.txt (modified) (2 diffs)
-
tags/2.2.3/src/Helper/GreenfieldApiHelper.php (modified) (1 diff)
-
tags/2.2.3/vendor/autoload.php (modified) (1 diff)
-
tags/2.2.3/vendor/composer/autoload_real.php (modified) (2 diffs)
-
tags/2.2.3/vendor/composer/autoload_static.php (modified) (2 diffs)
-
trunk/btcpay-greenfield-for-woocommerce.php (modified) (5 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/src/Helper/GreenfieldApiHelper.php (modified) (1 diff)
-
trunk/vendor/autoload.php (modified) (1 diff)
-
trunk/vendor/composer/autoload_real.php (modified) (2 diffs)
-
trunk/vendor/composer/autoload_static.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
btcpay-greenfield-for-woocommerce/tags/2.2.3/btcpay-greenfield-for-woocommerce.php
r2956618 r2956798 8 8 * Text Domain: btcpay-greenfield-for-woocommerce 9 9 * Domain Path: /languages 10 * Version: 2.2. 210 * Version: 2.2.3 11 11 * Requires PHP: 7.4 12 12 * Tested up to: 6.3 … … 20 20 use BTCPayServer\WC\Gateway\SeparateGateways; 21 21 use BTCPayServer\WC\Helper\GreenfieldApiAuthorization; 22 use BTCPayServer\WC\Helper\GreenfieldApiWebhook; 22 23 use BTCPayServer\WC\Helper\SatsMode; 23 24 use BTCPayServer\WC\Helper\GreenfieldApiHelper; … … 26 27 defined( 'ABSPATH' ) || exit(); 27 28 28 define( 'BTCPAYSERVER_VERSION', '2.2. 2' );29 define( 'BTCPAYSERVER_VERSION', '2.2.3' ); 29 30 define( 'BTCPAYSERVER_VERSION_KEY', 'btcpay_gf_version' ); 30 31 define( 'BTCPAYSERVER_PLUGIN_FILE_PATH', plugin_dir_path( __FILE__ ) ); … … 357 358 358 359 $rawData = file_get_contents('php://input'); 360 Logger::debug('Redirect payload: ' . print_r($rawData, true)); 361 359 362 $data = json_decode( $rawData, true ); 360 363 361 // Seems data does get submitted with url-encoded payload, so parse $_POST here. 364 // Check if the payload api key comes from the actually requested server. Abort if not. 365 $storedUrl = get_option('btcpay_gf_url'); 366 if (!GreenfieldApiHelper::checkApiKeyWorks($storedUrl, sanitize_text_field($_POST['apiKey']))) { 367 $messageAbort = __('Error on verifiying redirected API wey with stored BTCPay Server url. Aborting API wizard. Please try again or do a manual setup.', 'btcpay-greenfield-for-woocommerce'); 368 Logger::debug($messageAbort); 369 Notice::addNotice('error', $messageAbort); 370 wp_redirect($btcPaySettingsUrl); 371 } 372 373 // Data does get submitted with url-encoded payload, so parse $_POST here. 362 374 if (!empty($_POST)) { 363 375 $data['apiKey'] = sanitize_html_class($_POST['apiKey'] ?? null); … … 376 388 update_option('btcpay_gf_connection_details', 'yes'); 377 389 Notice::addNotice('success', __('Successfully received api key and store id from BTCPay Server API. Please finish setup by saving this settings form.', 'btcpay-greenfield-for-woocommerce')); 390 391 // Register a webhook. 392 if (GreenfieldApiWebhook::registerWebhook($storedUrl, $apiData->getApiKey(), $apiData->getStoreID())) { 393 $messageWebhookSuccess = __( 'Successfully registered a new webhook on BTCPay Server.', 'btcpay-greenfield-for-woocommerce' ); 394 Notice::addNotice('success', $messageWebhookSuccess, true ); 395 Logger::debug( $messageWebhookSuccess ); 396 } else { 397 $messageWebhookError = __( 'Could not register a new webhook on the store.', 'btcpay-greenfield-for-woocommerce' ); 398 Notice::addNotice('error', $messageWebhookError ); 399 Logger::debug($messageWebhookError, true); 400 // Cleanup existing conf. 401 delete_option('btcpay_gf_webhook'); 402 } 403 378 404 wp_redirect($btcPaySettingsUrl); 379 405 } else { -
btcpay-greenfield-for-woocommerce/tags/2.2.3/readme.txt
r2956618 r2956798 6 6 Tested up to: 6.3 7 7 Requires PHP: 7.4 8 Stable tag: 2.2. 28 Stable tag: 2.2.3 9 9 License: MIT 10 10 License URI: https://github.com/btcpayserver/woocommerce-greenfield-plugin/blob/master/license.txt … … 105 105 == Changelog == 106 106 107 = 2.2.3 :: 2023-08-22 = 108 * Automatically create webhook after redirect. 109 107 110 = 2.2.2 :: 2023-08-22 = 108 111 * Fix edgecase JS error on payment method selection. -
btcpay-greenfield-for-woocommerce/tags/2.2.3/src/Helper/GreenfieldApiHelper.php
r2954748 r2956798 52 52 } 53 53 54 public static function checkApiConnection(): bool { 55 if ($config = self::getConfig()) { 56 // todo: replace with server info endpoint. 54 public static function checkApiKeyWorks(string $url = null, string $apiKey = null): bool { 55 $config = []; 56 57 if ($url && $apiKey) { 58 $config['url'] = $url; 59 $config['api_key'] = $apiKey; 60 } else { 61 $config = self::getConfig(); 62 } 63 64 if ($config) { 57 65 $client = new Store($config['url'], $config['api_key']); 58 66 if (!empty($stores = $client->getStores())) { 59 67 return true; 60 } 61 } 68 } else { 69 Logger::debug('Could not fetch stores from BTCPay Server with the given API key.'); 70 return false; 71 } 72 } 73 62 74 return false; 63 75 } -
btcpay-greenfield-for-woocommerce/tags/2.2.3/vendor/autoload.php
r2956618 r2956798 23 23 require_once __DIR__ . '/composer/autoload_real.php'; 24 24 25 return ComposerAutoloaderInit 3e2478366fef1f0bd60f9f4a71e96b40::getLoader();25 return ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27::getLoader(); -
btcpay-greenfield-for-woocommerce/tags/2.2.3/vendor/composer/autoload_real.php
r2956618 r2956798 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 3e2478366fef1f0bd60f9f4a71e96b405 class ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 3e2478366fef1f0bd60f9f4a71e96b40', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 3e2478366fef1f0bd60f9f4a71e96b40', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b40::getInitializer($loader));32 call_user_func(\Composer\Autoload\ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::getInitializer($loader)); 33 33 34 34 $loader->register(true); -
btcpay-greenfield-for-woocommerce/tags/2.2.3/vendor/composer/autoload_static.php
r2956618 r2956798 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b407 class ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 33 33 { 34 34 return \Closure::bind(function () use ($loader) { 35 $loader->prefixLengthsPsr4 = ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b40::$prefixLengthsPsr4;36 $loader->prefixDirsPsr4 = ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b40::$prefixDirsPsr4;37 $loader->classMap = ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b40::$classMap;35 $loader->prefixLengthsPsr4 = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$prefixLengthsPsr4; 36 $loader->prefixDirsPsr4 = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$prefixDirsPsr4; 37 $loader->classMap = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$classMap; 38 38 39 39 }, null, ClassLoader::class); -
btcpay-greenfield-for-woocommerce/trunk/btcpay-greenfield-for-woocommerce.php
r2956618 r2956798 8 8 * Text Domain: btcpay-greenfield-for-woocommerce 9 9 * Domain Path: /languages 10 * Version: 2.2. 210 * Version: 2.2.3 11 11 * Requires PHP: 7.4 12 12 * Tested up to: 6.3 … … 20 20 use BTCPayServer\WC\Gateway\SeparateGateways; 21 21 use BTCPayServer\WC\Helper\GreenfieldApiAuthorization; 22 use BTCPayServer\WC\Helper\GreenfieldApiWebhook; 22 23 use BTCPayServer\WC\Helper\SatsMode; 23 24 use BTCPayServer\WC\Helper\GreenfieldApiHelper; … … 26 27 defined( 'ABSPATH' ) || exit(); 27 28 28 define( 'BTCPAYSERVER_VERSION', '2.2. 2' );29 define( 'BTCPAYSERVER_VERSION', '2.2.3' ); 29 30 define( 'BTCPAYSERVER_VERSION_KEY', 'btcpay_gf_version' ); 30 31 define( 'BTCPAYSERVER_PLUGIN_FILE_PATH', plugin_dir_path( __FILE__ ) ); … … 357 358 358 359 $rawData = file_get_contents('php://input'); 360 Logger::debug('Redirect payload: ' . print_r($rawData, true)); 361 359 362 $data = json_decode( $rawData, true ); 360 363 361 // Seems data does get submitted with url-encoded payload, so parse $_POST here. 364 // Check if the payload api key comes from the actually requested server. Abort if not. 365 $storedUrl = get_option('btcpay_gf_url'); 366 if (!GreenfieldApiHelper::checkApiKeyWorks($storedUrl, sanitize_text_field($_POST['apiKey']))) { 367 $messageAbort = __('Error on verifiying redirected API wey with stored BTCPay Server url. Aborting API wizard. Please try again or do a manual setup.', 'btcpay-greenfield-for-woocommerce'); 368 Logger::debug($messageAbort); 369 Notice::addNotice('error', $messageAbort); 370 wp_redirect($btcPaySettingsUrl); 371 } 372 373 // Data does get submitted with url-encoded payload, so parse $_POST here. 362 374 if (!empty($_POST)) { 363 375 $data['apiKey'] = sanitize_html_class($_POST['apiKey'] ?? null); … … 376 388 update_option('btcpay_gf_connection_details', 'yes'); 377 389 Notice::addNotice('success', __('Successfully received api key and store id from BTCPay Server API. Please finish setup by saving this settings form.', 'btcpay-greenfield-for-woocommerce')); 390 391 // Register a webhook. 392 if (GreenfieldApiWebhook::registerWebhook($storedUrl, $apiData->getApiKey(), $apiData->getStoreID())) { 393 $messageWebhookSuccess = __( 'Successfully registered a new webhook on BTCPay Server.', 'btcpay-greenfield-for-woocommerce' ); 394 Notice::addNotice('success', $messageWebhookSuccess, true ); 395 Logger::debug( $messageWebhookSuccess ); 396 } else { 397 $messageWebhookError = __( 'Could not register a new webhook on the store.', 'btcpay-greenfield-for-woocommerce' ); 398 Notice::addNotice('error', $messageWebhookError ); 399 Logger::debug($messageWebhookError, true); 400 // Cleanup existing conf. 401 delete_option('btcpay_gf_webhook'); 402 } 403 378 404 wp_redirect($btcPaySettingsUrl); 379 405 } else { -
btcpay-greenfield-for-woocommerce/trunk/readme.txt
r2956618 r2956798 6 6 Tested up to: 6.3 7 7 Requires PHP: 7.4 8 Stable tag: 2.2. 28 Stable tag: 2.2.3 9 9 License: MIT 10 10 License URI: https://github.com/btcpayserver/woocommerce-greenfield-plugin/blob/master/license.txt … … 105 105 == Changelog == 106 106 107 = 2.2.3 :: 2023-08-22 = 108 * Automatically create webhook after redirect. 109 107 110 = 2.2.2 :: 2023-08-22 = 108 111 * Fix edgecase JS error on payment method selection. -
btcpay-greenfield-for-woocommerce/trunk/src/Helper/GreenfieldApiHelper.php
r2954748 r2956798 52 52 } 53 53 54 public static function checkApiConnection(): bool { 55 if ($config = self::getConfig()) { 56 // todo: replace with server info endpoint. 54 public static function checkApiKeyWorks(string $url = null, string $apiKey = null): bool { 55 $config = []; 56 57 if ($url && $apiKey) { 58 $config['url'] = $url; 59 $config['api_key'] = $apiKey; 60 } else { 61 $config = self::getConfig(); 62 } 63 64 if ($config) { 57 65 $client = new Store($config['url'], $config['api_key']); 58 66 if (!empty($stores = $client->getStores())) { 59 67 return true; 60 } 61 } 68 } else { 69 Logger::debug('Could not fetch stores from BTCPay Server with the given API key.'); 70 return false; 71 } 72 } 73 62 74 return false; 63 75 } -
btcpay-greenfield-for-woocommerce/trunk/vendor/autoload.php
r2956618 r2956798 23 23 require_once __DIR__ . '/composer/autoload_real.php'; 24 24 25 return ComposerAutoloaderInit 3e2478366fef1f0bd60f9f4a71e96b40::getLoader();25 return ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27::getLoader(); -
btcpay-greenfield-for-woocommerce/trunk/vendor/composer/autoload_real.php
r2956618 r2956798 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 3e2478366fef1f0bd60f9f4a71e96b405 class ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 3e2478366fef1f0bd60f9f4a71e96b40', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 3e2478366fef1f0bd60f9f4a71e96b40', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b40::getInitializer($loader));32 call_user_func(\Composer\Autoload\ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::getInitializer($loader)); 33 33 34 34 $loader->register(true); -
btcpay-greenfield-for-woocommerce/trunk/vendor/composer/autoload_static.php
r2956618 r2956798 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b407 class ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27 8 8 { 9 9 public static $prefixLengthsPsr4 = array ( … … 33 33 { 34 34 return \Closure::bind(function () use ($loader) { 35 $loader->prefixLengthsPsr4 = ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b40::$prefixLengthsPsr4;36 $loader->prefixDirsPsr4 = ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b40::$prefixDirsPsr4;37 $loader->classMap = ComposerStaticInit 3e2478366fef1f0bd60f9f4a71e96b40::$classMap;35 $loader->prefixLengthsPsr4 = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$prefixLengthsPsr4; 36 $loader->prefixDirsPsr4 = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$prefixDirsPsr4; 37 $loader->classMap = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$classMap; 38 38 39 39 }, null, ClassLoader::class);
Note: See TracChangeset
for help on using the changeset viewer.