protected function getCurlOptArray($override = array())
    {
        $opt = array();

        $opt[CURLOPT_HEADER]         = false;
        $opt[CURLOPT_USERAGENT]      = 'ShopgatePlugin/' . (defined(
                'SHOPGATE_PLUGIN_VERSION'
            )
                ? SHOPGATE_PLUGIN_VERSION
                : 'called outside plugin');
        $opt[CURLOPT_RETURNTRANSFER] = true;
        $opt[CURLOPT_SSL_VERIFYPEER] = true; // *always* verify peers, otherwise MITM attacks are trivial
        // Use value of CURL_SSLVERSION_TLSv1_2 for CURLOPT_SSLVERSION, because it is not available before PHP 5.5.19 / 5.6.3
        // Actual usage of TLS 1.2 (which is required by PCI DSS) depends on PHP cURL extension and underlying SSL lib
        $opt[CURLOPT_SSLVERSION] = 6;
        $opt[CURLOPT_HTTPHEADER] = array(
            'X-Shopgate-Library-Version: ' . SHOPGATE_LIBRARY_VERSION,
            'X-Shopgate-Plugin-Version: ' . (defined(
                'SHOPGATE_PLUGIN_VERSION'
            )
                ? SHOPGATE_PLUGIN_VERSION
                : 'called outside plugin'),
        );
        $opt[CURLOPT_HTTPHEADER] = !empty($opt[CURLOPT_HTTPHEADER])
            ? ($this->authService->getAuthHttpHeaders() + $opt[CURLOPT_HTTPHEADER])
            : $this->authService->getAuthHttpHeaders();
        $opt[CURLOPT_TIMEOUT]    = 30; // Default timeout 30sec
        $opt[CURLOPT_POST]       = true;

        return ($override + $opt);
    }