public function prepareOrder( array $aPostData, $blSettingsUpdated = false )
    {
        // Update user profile with values user entered to Paymorrow form
        $this->_updateUserData( $aPostData );

        // Reset payment method in session and basket on its change
        $this->_resetPaymentMethod( $aPostData );

        // Send order preparation.verification request
        $aResponse = $this->_getRequestController()->pmVerify( $aPostData );
        oxRegistry::get( 'OxpsPaymorrowLogger' )->logWithType( $aPostData, 'Proxy-prepareOrderPOST' );

        /** @var OxpsPaymorrowResponseHandler $oResponseHandler */
        $oResponseHandler   = oxRegistry::get( 'OxpsPaymorrowResponseHandler' );
        $iResponseErrorCore = $oResponseHandler->getErrorCodeFromResponseData( $aResponse );

        // Check of response is an error with configuration update error code 900
        if ( ( $iResponseErrorCore === 900 ) and empty( $blSettingsUpdated ) ) {

            // Call module settings update in case error code 900 received
            oxRegistry::get( 'OxpsPaymorrowModule' )->updateSettings();

            // Call the request again
            return $this->prepareOrder( $aPostData, true );
        }

        return json_encode( $aResponse );
    }