Cielo\Serializer\TransactionRequestSerializer::serialize PHP Method

serialize() public method

{@inheritDoc}
public serialize ( $transaction )
    public function serialize($transaction)
    {
        libxml_use_internal_errors(true);
        $document = new DOMDocument('1.0', 'utf-8');
        $requisicaoTransacao = $this->createRequisicaoTransacao($transaction, $document);
        $document->appendChild($requisicaoTransacao);
        if (is_file('ecommerce.xsd') && is_readable('ecommerce.xsd')) {
            $document->schemaValidate('ecommerce.xsd');
        }
        $exception = new \DomainException('Erro na criação do XML');
        $count = 0;
        foreach (libxml_get_errors() as $error) {
            $exception = new \DomainException($error->message, $error->code, $exception);
            ++$count;
        }
        libxml_clear_errors();
        if ($count) {
            echo $document->saveXML();
            throw $exception;
        }
        return $document->saveXML();
    }

Usage Example

Example #1
0
 public function transactionRequest(Transaction $transaction)
 {
     $transactionRequestSerializer = new TransactionRequestSerializer();
     $response = $this->sendHttpRequest($transactionRequestSerializer->serialize($transaction));
     $transactionResponseUnserializer = new TransactionResponseUnserializer($transaction);
     return $transactionResponseUnserializer->unserialize($response);
 }