Plugin Directory

Changeset 2956798


Ignore:
Timestamp:
08/22/2023 12:57:52 PM (3 years ago)
Author:
ndeet
Message:

Update to version 2.2.3 from GitHub

Location:
btcpay-greenfield-for-woocommerce
Files:
12 edited
1 copied

Legend:

Unmodified
Added
Removed
  • btcpay-greenfield-for-woocommerce/tags/2.2.3/btcpay-greenfield-for-woocommerce.php

    r2956618 r2956798  
    88 * Text Domain:     btcpay-greenfield-for-woocommerce
    99 * Domain Path:     /languages
    10  * Version:         2.2.2
     10 * Version:         2.2.3
    1111 * Requires PHP:    7.4
    1212 * Tested up to:    6.3
     
    2020use BTCPayServer\WC\Gateway\SeparateGateways;
    2121use BTCPayServer\WC\Helper\GreenfieldApiAuthorization;
     22use BTCPayServer\WC\Helper\GreenfieldApiWebhook;
    2223use BTCPayServer\WC\Helper\SatsMode;
    2324use BTCPayServer\WC\Helper\GreenfieldApiHelper;
     
    2627defined( 'ABSPATH' ) || exit();
    2728
    28 define( 'BTCPAYSERVER_VERSION', '2.2.2' );
     29define( 'BTCPAYSERVER_VERSION', '2.2.3' );
    2930define( 'BTCPAYSERVER_VERSION_KEY', 'btcpay_gf_version' );
    3031define( 'BTCPAYSERVER_PLUGIN_FILE_PATH', plugin_dir_path( __FILE__ ) );
     
    357358
    358359    $rawData = file_get_contents('php://input');
     360    Logger::debug('Redirect payload: ' . print_r($rawData, true));
     361
    359362    $data = json_decode( $rawData, true );
    360363
    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.
    362374    if (!empty($_POST)) {
    363375        $data['apiKey'] = sanitize_html_class($_POST['apiKey'] ?? null);
     
    376388            update_option('btcpay_gf_connection_details', 'yes');
    377389            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
    378404            wp_redirect($btcPaySettingsUrl);
    379405        } else {
  • btcpay-greenfield-for-woocommerce/tags/2.2.3/readme.txt

    r2956618 r2956798  
    66Tested up to: 6.3
    77Requires PHP: 7.4
    8 Stable tag: 2.2.2
     8Stable tag: 2.2.3
    99License: MIT
    1010License URI: https://github.com/btcpayserver/woocommerce-greenfield-plugin/blob/master/license.txt
     
    105105== Changelog ==
    106106
     107= 2.2.3 :: 2023-08-22 =
     108* Automatically create webhook after redirect.
     109
    107110= 2.2.2 :: 2023-08-22 =
    108111* Fix edgecase JS error on payment method selection.
  • btcpay-greenfield-for-woocommerce/tags/2.2.3/src/Helper/GreenfieldApiHelper.php

    r2954748 r2956798  
    5252    }
    5353
    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) {
    5765            $client = new Store($config['url'], $config['api_key']);
    5866            if (!empty($stores = $client->getStores())) {
    5967                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
    6274        return false;
    6375    }
  • btcpay-greenfield-for-woocommerce/tags/2.2.3/vendor/autoload.php

    r2956618 r2956798  
    2323require_once __DIR__ . '/composer/autoload_real.php';
    2424
    25 return ComposerAutoloaderInit3e2478366fef1f0bd60f9f4a71e96b40::getLoader();
     25return ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27::getLoader();
  • btcpay-greenfield-for-woocommerce/tags/2.2.3/vendor/composer/autoload_real.php

    r2956618 r2956798  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit3e2478366fef1f0bd60f9f4a71e96b40
     5class ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit3e2478366fef1f0bd60f9f4a71e96b40', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit3e2478366fef1f0bd60f9f4a71e96b40', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::getInitializer($loader));
    3333
    3434        $loader->register(true);
  • btcpay-greenfield-for-woocommerce/tags/2.2.3/vendor/composer/autoload_static.php

    r2956618 r2956798  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40
     7class ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    3333    {
    3434        return \Closure::bind(function () use ($loader) {
    35             $loader->prefixLengthsPsr4 = ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40::$prefixLengthsPsr4;
    36             $loader->prefixDirsPsr4 = ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40::$prefixDirsPsr4;
    37             $loader->classMap = ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40::$classMap;
     35            $loader->prefixLengthsPsr4 = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$prefixLengthsPsr4;
     36            $loader->prefixDirsPsr4 = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$prefixDirsPsr4;
     37            $loader->classMap = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$classMap;
    3838
    3939        }, null, ClassLoader::class);
  • btcpay-greenfield-for-woocommerce/trunk/btcpay-greenfield-for-woocommerce.php

    r2956618 r2956798  
    88 * Text Domain:     btcpay-greenfield-for-woocommerce
    99 * Domain Path:     /languages
    10  * Version:         2.2.2
     10 * Version:         2.2.3
    1111 * Requires PHP:    7.4
    1212 * Tested up to:    6.3
     
    2020use BTCPayServer\WC\Gateway\SeparateGateways;
    2121use BTCPayServer\WC\Helper\GreenfieldApiAuthorization;
     22use BTCPayServer\WC\Helper\GreenfieldApiWebhook;
    2223use BTCPayServer\WC\Helper\SatsMode;
    2324use BTCPayServer\WC\Helper\GreenfieldApiHelper;
     
    2627defined( 'ABSPATH' ) || exit();
    2728
    28 define( 'BTCPAYSERVER_VERSION', '2.2.2' );
     29define( 'BTCPAYSERVER_VERSION', '2.2.3' );
    2930define( 'BTCPAYSERVER_VERSION_KEY', 'btcpay_gf_version' );
    3031define( 'BTCPAYSERVER_PLUGIN_FILE_PATH', plugin_dir_path( __FILE__ ) );
     
    357358
    358359    $rawData = file_get_contents('php://input');
     360    Logger::debug('Redirect payload: ' . print_r($rawData, true));
     361
    359362    $data = json_decode( $rawData, true );
    360363
    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.
    362374    if (!empty($_POST)) {
    363375        $data['apiKey'] = sanitize_html_class($_POST['apiKey'] ?? null);
     
    376388            update_option('btcpay_gf_connection_details', 'yes');
    377389            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
    378404            wp_redirect($btcPaySettingsUrl);
    379405        } else {
  • btcpay-greenfield-for-woocommerce/trunk/readme.txt

    r2956618 r2956798  
    66Tested up to: 6.3
    77Requires PHP: 7.4
    8 Stable tag: 2.2.2
     8Stable tag: 2.2.3
    99License: MIT
    1010License URI: https://github.com/btcpayserver/woocommerce-greenfield-plugin/blob/master/license.txt
     
    105105== Changelog ==
    106106
     107= 2.2.3 :: 2023-08-22 =
     108* Automatically create webhook after redirect.
     109
    107110= 2.2.2 :: 2023-08-22 =
    108111* Fix edgecase JS error on payment method selection.
  • btcpay-greenfield-for-woocommerce/trunk/src/Helper/GreenfieldApiHelper.php

    r2954748 r2956798  
    5252    }
    5353
    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) {
    5765            $client = new Store($config['url'], $config['api_key']);
    5866            if (!empty($stores = $client->getStores())) {
    5967                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
    6274        return false;
    6375    }
  • btcpay-greenfield-for-woocommerce/trunk/vendor/autoload.php

    r2956618 r2956798  
    2323require_once __DIR__ . '/composer/autoload_real.php';
    2424
    25 return ComposerAutoloaderInit3e2478366fef1f0bd60f9f4a71e96b40::getLoader();
     25return ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27::getLoader();
  • btcpay-greenfield-for-woocommerce/trunk/vendor/composer/autoload_real.php

    r2956618 r2956798  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit3e2478366fef1f0bd60f9f4a71e96b40
     5class ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit3e2478366fef1f0bd60f9f4a71e96b40', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit3e2478366fef1f0bd60f9f4a71e96b40', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInitfd933f855e2b3e9fc705a8e1da981a27', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::getInitializer($loader));
    3333
    3434        $loader->register(true);
  • btcpay-greenfield-for-woocommerce/trunk/vendor/composer/autoload_static.php

    r2956618 r2956798  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40
     7class ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    3333    {
    3434        return \Closure::bind(function () use ($loader) {
    35             $loader->prefixLengthsPsr4 = ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40::$prefixLengthsPsr4;
    36             $loader->prefixDirsPsr4 = ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40::$prefixDirsPsr4;
    37             $loader->classMap = ComposerStaticInit3e2478366fef1f0bd60f9f4a71e96b40::$classMap;
     35            $loader->prefixLengthsPsr4 = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$prefixLengthsPsr4;
     36            $loader->prefixDirsPsr4 = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$prefixDirsPsr4;
     37            $loader->classMap = ComposerStaticInitfd933f855e2b3e9fc705a8e1da981a27::$classMap;
    3838
    3939        }, null, ClassLoader::class);
Note: See TracChangeset for help on using the changeset viewer.