public function collectSsl(array $params)
    {
        // Not decode the following indexes
        $notDecode = array('caCertificate', 'certificate', 'netscapeCertificateSequence', 'zipFile');

        // Force threating as array
        $forceArray = array('caCertificate');

        // Two choices, we want url-encoded
        $params['responseFormat'] = CommunicationAdapter::RESPONSE_URL_ENCODED;

        // Send request
        $arr = $this
            ->communicationAdapter
            ->sendToApi(
                self::COMODO_COLLECT_SSL_URL,
                $params,
                CommunicationAdapter::RESPONSE_URL_ENCODED,
                $notDecode,
                $forceArray
            );

        // Successful
        if ($arr['errorCode'] >= 0) {
            $result = new CollectSslResult();

            $this->fill($result, $arr, array('notBefore', 'notAfter'));
            
            /*
             * Comodo does not provide these data, when not a EV certificate (Bug?). So we fill this manually to "not required".
             * 
             * https://secure.comodo.net/api/pdf/webhostreseller/sslcertificates/CollectSSL%20v1.17.pdf
             */
            if (!isset($arr['evClickThroughStatus'])) {
                $result->setEvClickThroughStatus(-1);
            }

            if (!isset($arr['brandValStatus'])) {
                $result->setBrandValStatus(-1);
            }

            return $result;
        } else {
            throw $this->createException($arr);
        }
    }