/** * 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); }
/** * Generate a form body for hosted order * * @access public * @param $order An array containing full Order * @param $params An optional array with form elements' params * @return string Response html form */ public static function hostedOrderForm($order, $params = array()) { $orderFormUrl = OpenPayU_Configuration::getServiceUrl() . 'orders'; $usortedFormFieldValuesAsArray = array(); $htmlFormFields = OpenPayU_Util::convertArrayToHtmlForm($order, "", $usortedFormFieldValuesAsArray); ksort($usortedFormFieldValuesAsArray); $sortedFormFieldValuesAsString = implode('', array_values($usortedFormFieldValuesAsArray)); $signature = OpenPayU_Util::generateSignData($sortedFormFieldValuesAsString, OpenPayU_Configuration::getHashAlgorithm(), OpenPayU_Configuration::getMerchantPosId(), OpenPayU_Configuration::getSignatureKey()); $formParams = array_merge(self::$defaultFormParams, $params); $htmlOutput = sprintf("<form method=\"POST\" action=\"%s\" id=\"%s\" class=\"%s\">\n", $orderFormUrl, $formParams['formId'], $formParams['formClass']); $htmlOutput .= $htmlFormFields; $htmlOutput .= sprintf("<input type=\"hidden\" name=\"OpenPayu-Signature\" value=\"%s\" />", $signature); $htmlOutput .= sprintf("<button type=\"submit\" formtarget=\"%s\" id=\"%s\" class=\"%s\">%s</button>", $formParams['submitTarget'], $formParams['submitId'], $formParams['submitClass'], $formParams['submitContent']); $htmlOutput .= "</form>\n"; return $htmlOutput; }
public function testSetValidHashAlgorithm() { OpenPayU_Configuration::setHashAlgorithm('MD5'); $this->assertEquals('MD5', OpenPayU_Configuration::getHashAlgorithm()); }