private function createRequisicaoTransacao($transaction, DOMDocument $document)
{
$requisicao = $document->createElementNS(self::NS, 'requisicao-transacao');
$requisicao->setAttribute('id', $transaction->getOrder()->getNumber());
$requisicao->setAttribute('versao', RequestSerializer::VERSION);
$requisicao->appendChild($this->createDadosEc($transaction, $document));
$requisicao->appendChild($this->createDadosPortador($transaction, $document));
$requisicao->appendChild($this->createDadosPedido($transaction, $document));
$requisicao->appendChild($this->createFormaPagamento($transaction, $document));
$this->createElementAndAppendWithNs($requisicao, 'url-retorno', $transaction->getReturnURL());
$this->createElementAndAppendWithNs($requisicao, 'autorizar', $transaction->getAuthorize());
$this->createElementAndAppendWithNs($requisicao, 'capturar', $transaction->getCapture() ? 'true' : 'false');
$this->createElementAndAppendWithNs($requisicao, 'campo-livre', $transaction->getFreeField());
if ($transaction->getBin() !== null) {
$this->createElementAndAppendWithNs($requisicao, 'bin', $transaction->getBin());
}
$this->createElementAndAppendWithNs($requisicao, 'gerar-token', $transaction->getGenerateToken() ? 'true' : 'false');
$avsXML = $transaction->getAvs();
if (!empty($avsXML)) {
$avs = $document->createElementNS(self::NS, 'avs');
$avs->appendChild($document->createCDATASection($avsXML));
$requisicao->appendChild($avs);
}
return $requisicao;
}