/** * Function builds OpenPayU Xml Document * @access public * @param string $data * @param string $startElement * @param integer $request * @param string $xml_version * @param string $xml_encoding * @return string $xml */ public static function buildOpenPayUDocument($data, $startElement, $request = 1, $xml_version = '1.0', $xml_encoding = 'UTF-8') { if (!is_array($data)) { return false; } $xml = new XmlWriter(); $xml->openMemory(); $xml->startDocument($xml_version, $xml_encoding); if (OpenPayU_Configuration::getApiVersion() < 2) { $xml->startElementNS(null, 'OpenPayU', 'http://www.openpayu.com/openpayu.xsd'); $header = $request == 1 ? 'HeaderRequest' : 'HeaderResponse'; $xml->startElement($header); $xml->writeElement('Algorithm', OpenPayU_Configuration::getHashAlgorithm()); $xml->writeElement('SenderName', 'exampleSenderName'); $xml->writeElement('Version', $xml_version); $xml->endElement(); } else { $xml->startElementNS(null, 'OpenPayU', 'http://www.openpayu.com/20/openpayu.xsd'); } // domain level - open if (OpenPayU_Configuration::getApiVersion() < 2) { $xml->startElement(OpenPayUDomain::getDomain4Message($startElement)); } // message level - open $xml->startElement($startElement); OpenPayU_Util::convertArrayToXml($xml, $data); // message level - close $xml->endElement(); // domain level - close $xml->endElement(); // document level - close if (OpenPayU_Configuration::getApiVersion() < 2) { $xml->endElement(); } return $xml->outputMemory(true); }
/** * Function builds OpenPayU Xml Document * @access public * @param string $data * @param string $start_element * @param integer $request * @param string $xml_version * @param string $xml_encoding * @return string $xml */ public static function buildOpenPayUDocument($data, $start_element, $request = 1, $xml_version = '1.0', $xml_encoding = 'UTF-8') { if (!is_array($data)) { return false; } $xml = new XmlWriter(); $xml->openMemory(); $xml->startDocument($xml_version, $xml_encoding); $xml->startElementNS(null, 'OpenPayU', 'http://www.openpayu.com/openpayu.xsd'); $header = $request == 1 ? 'HeaderRequest' : 'HeaderResponse'; $xml->startElement($header); $xml->writeElement('Algorithm', 'MD5'); $xml->writeElement('SenderName', 'POSID=' . OpenPayUConfiguration::getMerchantPosid() . ';CUSTOM_PLUGIN=PRESTASHOP'); $xml->writeElement('Version', $xml_version); $xml->endElement(); // domain level - open $xml->startElement(OpenPayUDomain::getDomain4Message($start_element)); // message level - open $xml->startElement($start_element); self::arr2xml($xml, $data); // message level - close $xml->endElement(); // domain level - close $xml->endElement(); // document level - close $xml->endElement(); return $xml->outputMemory(true); }
/** * Function returns Message domain * @param string $msg * @access public * @return array */ public static function getDomain4Message($msg) { self::$msg2domain = array('OrderCreateRequest' => 'OrderDomainRequest', 'OrderCreateResponse' => 'OrderDomainResponse', 'OrderStatusUpdateRequest' => 'OrderDomainRequest', 'OrderStatusUpdateResponse' => 'OrderDomainResponse', 'OrderCancelRequest' => 'OrderDomainRequest', 'OrderCancelResponse' => 'OrderDomainResponse', 'OrderNotifyRequest' => 'OrderDomainRequest', 'OrderNotifyResponse' => 'OrderDomainResponse', 'OrderRetrieveRequest' => 'OrderDomainRequest', 'OrderRetrieveResponse' => 'OrderDomainResponse', 'ShippingCostRetrieveRequest' => 'OrderDomainRequest', 'ShippingCostRetrieveResponse' => 'OrderDomainResponse'); return self::$msg2domain[$msg]; }