/** * Sets our 3DSecure request to confirm the transaction. * * @param string $pares * @param string $reference * @param string $method * @return SimpleXML * */ function set3DSecureAuthRequest($pares, $reference, $method = 'deposits') { if (is_null($pares) || empty($pares)) { throw new Zend_Exception('PaRes is not set'); } if (strlen($reference) !== 16) { throw new Zend_Exception('Reference must be 16 characters long'); } $xml = xmlwriter_open_memory(); xmlwriter_start_element($xml, 'Request'); $auth = $this->_handleAuth($method); xmlwriter_write_raw($xml, $auth); xmlwriter_start_element($xml, 'Transaction'); xmlwriter_start_element($xml, 'HistoricTxn'); xmlwriter_write_element($xml, 'reference', $reference); xmlwriter_start_element($xml, 'method'); xmlwriter_write_attribute($xml, 'tx_status_u', 'accept'); xmlwriter_write_raw($xml, 'threedsecure_authorization_request'); xmlwriter_end_element($xml); xmlwriter_write_element($xml, 'pares_message', $pares); xmlwriter_end_element($xml); xmlwriter_end_element($xml); xmlwriter_end_element($xml); return xmlwriter_output_memory($xml, true); }
VERIFY(xmlwriter_start_element($xml, "node")); VERIFY(xmlwriter_start_cdata($xml)); VERIFY(xmlwriter_text($xml, "Raw text")); VERIFY(xmlwriter_end_cdata($xml)); VERIFY(xmlwriter_end_element($xml)); VERIFY(xmlwriter_start_element($xml, "node")); VERIFY(xmlwriter_write_cdata($xml, "More CDATA")); VERIFY(xmlwriter_end_element($xml)); VERIFY(xmlwriter_start_comment($xml)); VERIFY(xmlwriter_text($xml, "Comments")); VERIFY(xmlwriter_end_comment($xml)); VERIFY(xmlwriter_write_comment($xml, "More comments")); VERIFY(xmlwriter_start_pi($xml, "lol")); VERIFY(xmlwriter_end_pi($xml)); VERIFY(xmlwriter_write_pi($xml, "php", "print 'Hello world!';")); VERIFY(xmlwriter_write_raw($xml, "<node>Raw XML</node>")); VERIFY(xmlwriter_write_dtd($xml, "name", "publicID", "systemID", "subset")); VERIFY(xmlwriter_start_dtd($xml, "name", "publicID", "systemID")); VERIFY(xmlwriter_end_dtd($xml)); VERIFY(xmlwriter_start_dtd_element($xml, "name")); VERIFY(xmlwriter_end_dtd_element($xml)); VERIFY(xmlwriter_write_dtd_element($xml, "name", "content")); VERIFY(xmlwriter_start_dtd_attlist($xml, "name")); VERIFY(xmlwriter_end_dtd_attlist($xml)); VERIFY(xmlwriter_write_dtd_attlist($xml, "name", "content")); VERIFY(xmlwriter_start_dtd_entity($xml, "name", false)); VERIFY(xmlwriter_end_dtd_entity($xml)); VERIFY(xmlwriter_write_dtd_entity($xml, "name", "content", false, "publicid", "systemid", "ndataid")); VERIFY(xmlwriter_end_document($xml)); var_dump(xmlwriter_flush($xml)); var_dump(xmlwriter_output_memory($xml));