I'm using Magento 2 CE Version 2.1.0.

I have 2 payment method Paypal Express Checkout & Bank Transfer.

When the amount is greater than X then Paypal should not be displayed only Bank Transfer.

I have configured that variable on admin side on `system.xml` for X amount.

By referring to http://magento.stackexchange.com/questions/135302/magento-2-how-do-we-add-zipcode-validation-on-cod-payment-method/135524#135524 as per @Ashish suggestion.

I have below code now

**app\code\Custom\Module\etc\frontend\di.xml**

    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
    <type name="Magento\Paypal\Model\Express">
            <plugin sortOrder="1" name="restrictByCustomer" type="Custom\Module\Plugin\Payment\Method\Paypal\Available"/>
    </type>

**app\code\Custom\Module\Plugin\Payment\Method\Paypal\Available.php**

    namespace Custom\Module\Plugin\Payment\Method\Paypal;
    
    use Magento\Customer\Model\Session as CustomerSession;
    use Magento\Backend\Model\Auth\Session as BackendSession;
    use Magento\Paypal\Model\Express;
    use Magento\Store\Model\ScopeInterface;
    use Magento\Framework\App\Config\ScopeConfigInterface;
    use Magento\Checkout\Model\Cart;
    
    class Available {
    
        /**
         * @var CustomerSession
         */
        protected $customerSession;
    
        /**
         * @var BackendSession
         */
        protected $backendSession;
    
        /**
         * @param CustomerSession $customerSession
         * @param BackendSession $backendSession
         */
        public function __construct(
        CustomerSession $customerSession, BackendSession $backendSession, ScopeConfigInterface $scopeConfig, Cart $cart
        ) {
            $this->customerSession = $customerSession;
            $this->backendSession = $backendSession;
            $this->scopeConfig = $scopeConfig;
            $this->cart = $cart;
        }
    
        /**
         *
         * @param Paypal Express $subject
         * @param $result
         * @return bool
         * @throws \Magento\Framework\Exception\LocalizedException
         */
        public function afterIsAvailable(Express $subject, $result) {
    
            // Do not remove payment method for admin
            if ($this->backendSession->isLoggedIn()) {
                return $result;
            }
    
            $cartQuote = $this->cart->getQuote()->getData();
            $cartGrandTotal = $cartQuote['base_grand_total'];
    
            list($grandTotal, $decimals) = explode(".", $cartQuote['base_grand_total']);
            $papalMaxShowLimit = $this->scopeConfig->getValue('mygeneral/settings/paypal_show_amount', ScopeInterface::SCOPE_STORE);
    
            if ($grandTotal > $papalMaxShowLimit) {
                return false;
            } else {
                return true;
            }
        }
    }

I have put all condition. But on `return false` it's not hiding Paypal Express Checkout Method.

**[Update] I'm not able select Paypal Payment Method's Radio Button On Checkout Page. It's not hiding it completely.**