protected function PayOne3dSecure_3dScheck()
    {
        $aResponse = array();
        $aResponse['success'] = false;

        $oGlobal = TGlobal::instance();
        $oBasket = TShopBasket::GetInstance();

        // load data from POST
        $aUserPaymentData = $this->GetUserPaymentData();

        // Save to session
        $_SESSION['PayOneResponse']['pseudocardpan'] = $aUserPaymentData['pseudocardpan'];
        $_SESSION['PayOneResponse']['truncatedcardpan'] = $aUserPaymentData['truncatedcardpan'];

        // create success URL
        $aSuccessCall = array('module_fnc' => array($oGlobal->GetExecutingModulePointer()->sModuleSpotName => 'PostProcessExternalPaymentHandlerHook'));

        $aExcludes = array_keys($aSuccessCall);
        $aExcludes[] = 'aShipping';
        $aExcludes[] = 'orderstepmethod';
        $aExcludes[] = 'aPayment';
        $aExcludes[] = 'module_fnc';

        $sSuccessURL = urldecode(str_replace('&amp;', '&', $this->getActivePageService()->getLinkToActivePageAbsolute($aSuccessCall, $aExcludes)));
        $sSuccessURL .= '&payrequest=3dsredirect';

        // Init 3D-Secure params
        $frequest = new financegateRequest();
        $fconnect = new financegateConnect();

        $frequest->setRequest('3dscheck');
        $frequest->setClearingType('cc');
        $frequest->setPortalId($this->GetConfigParameter('portalid'));
        $frequest->setKey($this->GetConfigParameter('key'));
        $frequest->setMId($this->GetConfigParameter('mid'));
        $frequest->setAId($this->GetConfigParameter('aid'));
        $frequest->setMode($this->GetConfigParameter('mode'));
        $request = $this->getCurrentRequest();
        $frequest->setIp(null === $request ? '' : $request->getClientIp());

        $frequest->setExitUrl($sSuccessURL);
        $frequest->setAmount($oBasket->dCostTotal * 100);
        $frequest->setCurrency($this->GetCurrency());
        $frequest->setLanguage($this->GetCurrentLanguageCode());

        $frequest->setPseudocardpan($aUserPaymentData['pseudocardpan']);

        $fconnect->setApiUrl($this->GetConfigParameter('serverApiUrlPayOne'));
        $fresponse = $fconnect->processByRequest($frequest);
        //if(_ES_DEBUG) var_dump($fresponse);

        $sStatus = $fresponse->getStatus();

        $aResponse['success'] = true;
        $aResponse['status'] = $sStatus;

        if ('ENROLLED' == $sStatus) {
            $this->ExecuteExternalPayOneCall($fresponse); // REDIRECT TO EXTERNAL SECURE-PIN-URL!
        } else {
            if ('VALID' == $sStatus) {
                // do nothing
            } else {
                $aResponse['success'] = false;
                $aResponse['status'] = $sStatus;
                $aResponse['errormessage'] = $fresponse->getErrorMessage();
                $aResponse['errortext'] = $fresponse->getCustomerMessage();
                //if(_ES_DEBUG) print_form($_REQUEST,$info);
            }
        }

        return $aResponse;
    }