protected static function _getSuccessInstance($return, $secret)
    {
        if (!array_key_exists('paymentType', $return)) {
            throw new WirecardCEE_QPay_Exception_InvalidResponseException('Invalid response from QPAY. Paymenttype is missing.');
        }

        switch (strtoupper($return['paymentType'])) {
            case WirecardCEE_Stdlib_PaymentTypeAbstract::CCARD:
            case WirecardCEE_Stdlib_PaymentTypeAbstract::CCARD_MOTO:
            case WirecardCEE_Stdlib_PaymentTypeAbstract::MAESTRO:
                return new WirecardCEE_QPay_Return_Success_CreditCard($return, $secret);
                break;
            case WirecardCEE_Stdlib_PaymentTypeAbstract::PAYPAL:
                return new WirecardCEE_QPay_Return_Success_PayPal($return, $secret);
                break;
            case WirecardCEE_Stdlib_PaymentTypeAbstract::SOFORTUEBERWEISUNG:
                return new WirecardCEE_QPay_Return_Success_Sofortueberweisung($return, $secret);
                break;
            case WirecardCEE_Stdlib_PaymentTypeAbstract::IDL:
                return new WirecardCEE_QPay_Return_Success_Ideal($return, $secret);
                break;
            default:
                return new WirecardCEE_QPay_Return_Success($return, $secret);
                break;
        }
    }