/**
  * Function sending Order to PayU Service
  * @access public
  * @param array $order
  * @param boolean $debug
  * @return object $result
  */
 public static function create($order, $debug = TRUE)
 {
     // preparing payu service for order initialization
     $OrderCreateRequestUrl = OpenPayU_Configuration::getServiceUrl() . 'co/openpayu/OrderCreateRequest';
     if ($debug) {
         OpenPayU::addOutputConsole('OpenPayU endpoint for OrderCreateRequest message', $OrderCreateRequestUrl);
     }
     OpenPayU::setOpenPayuEndPoint($OrderCreateRequestUrl);
     // convert array to openpayu document
     $xml = OpenPayU::buildOrderCreateRequest($order);
     if ($debug) {
         OpenPayU::addOutputConsole('OrderCreateRequest message', htmlentities($xml));
     }
     $merchantPosId = OpenPayU_Configuration::getMerchantPosId();
     $signatureKey = OpenPayU_Configuration::getSignatureKey();
     // send openpayu document with order initialization structure to PayU service
     $response = OpenPayU::sendOpenPayuDocumentAuth($xml, $merchantPosId, $signatureKey);
     if ($debug) {
         OpenPayU::addOutputConsole('OrderCreateRequest message', htmlentities($response));
     }
     // verify response from PayU service
     $status = OpenPayU::verifyOrderCreateResponse($response);
     if ($debug) {
         OpenPayU::addOutputConsole('OrderCreateResponse status', serialize($status));
     }
     $result = new OpenPayU_Result();
     $result->setStatus($status);
     $result->setError($status['StatusCode']);
     $result->setSuccess($status['StatusCode'] == 'OPENPAYU_SUCCESS' ? TRUE : FALSE);
     $result->setRequest($order);
     $result->setResponse(OpenPayU::parseOpenPayUDocument($response));
     return $result;
 }