src/Mapper/ResponseMapper.php
public function map($response, Transaction $transaction = null)
    {
        $this->transaction = $transaction;

        // If the response is encoded, we need to first decode it.
        $decodedResponse = base64_decode($response);
        $this->xmlResponse = (base64_encode($decodedResponse) === $response) ? $decodedResponse : $response;
        //we need to use internal_errors, because we don't want to throw errors on invalid xml responses
        $oldErrorHandling = libxml_use_internal_errors(true);
        $this->simpleXml = simplexml_load_string($this->xmlResponse);
        //reset to old value after string is loaded
        libxml_use_internal_errors($oldErrorHandling);

        if (!$this->simpleXml instanceof \SimpleXMLElement) {
            throw new MalformedResponseException('Response is not a valid xml string.');
        }

        if (isset($this->simpleXml->{'transaction-state'})) {
            $state = (string)$this->simpleXml->{'transaction-state'};
        } else {
            throw new MalformedResponseException('Missing transaction-state in response.');
        }

        switch ($state) {
            case 'success':
                return $this->mapSuccessResponse();
            case 'in-progress':
                return new PendingResponse($this->simpleXml);
            default:
                return new FailureResponse($this->simpleXml);
        }
    }
public function map($response, Transaction $transaction = null)
    {
        $this->transaction = $transaction;

        // If the response is encoded, we need to first decode it.
        $decodedResponse = base64_decode($response);
        $this->xmlResponse = (base64_encode($decodedResponse) === $response) ? $decodedResponse : $response;
        //we need to use internal_errors, because we don't want to throw errors on invalid xml responses
        $oldErrorHandling = libxml_use_internal_errors(true);
        $this->simpleXml = simplexml_load_string($this->xmlResponse);
        //reset to old value after string is loaded
        libxml_use_internal_errors($oldErrorHandling);

        if (!$this->simpleXml instanceof \SimpleXMLElement) {
            throw new MalformedResponseException('Response is not a valid xml string.');
        }

        if (isset($this->simpleXml->{'transaction-state'})) {
            $state = (string)$this->simpleXml->{'transaction-state'};
        } else {
            throw new MalformedResponseException('Missing transaction-state in response.');
        }

        switch ($state) {
            case 'success':
                return $this->mapSuccessResponse();
            case 'in-progress':
                return new PendingResponse($this->simpleXml);
            default:
                return new FailureResponse($this->simpleXml);
        }
    }
public function map ( $ response , Transaction $ transaction = null ) { $ this -> transaction = $ transaction ; // If the response is encoded, we need to first decode it. $ decodedResponse = base64_decode ( $ response ) ; $ this -> xmlResponse = ( base64_encode ( $ decodedResponse ) === $ response ) ? $ decodedResponse : $ response ; //we need to use internal_errors, because we don't want to throw errors on invalid xml responses $ oldErrorHandling = libxml_use_internal_errors ( true ) ; $ this -> simpleXml = simplexml_load_string ( $ this -> xmlResponse ) ; //reset to old value after string is loaded libxml_use_internal_errors ( $ oldErrorHandling ) ; if ( ! $ this -> simpleXml instanceof \ SimpleXMLElement ) { throw new MalformedResponseException ( 'Response is not a valid xml string.' ) ; } if ( isset ( $ this -> simpleXml -> { 'transaction-state' } ) ) { $ state = ( string ) $ this -> simpleXml -> { 'transaction-state' } ; } else { throw new MalformedResponseException ( 'Missing transaction-state in response.' ) ; } switch ( $ state ) { case 'success' : return $ this -> mapSuccessResponse ( ) ; case 'in-progress' : return new PendingResponse ( $ this -> simpleXml ) ; default : return new FailureResponse ( $ this -> simpleXml ) ; } }
map the xml Response from Wirecard's Payment Processing Gateway to ResponseObjects

@param string $response
@param Transaction $transaction
@throws \InvalidArgumentException
@throws MalformedResponseException
@return Response
map the xml Response from Wirecard s Payment Processing Gateway to ResponseObjects