/** * Function retrieving Order data from PayU Service * @access public * @param string $sessionId * @param boolean $debug * @return object $result */ public static function retrieve($sessionId, $debug = TRUE) { $req = array('ReqId' => md5(rand()), 'MerchantPosId' => OpenPayU_Configuration::getMerchantPosId(), 'SessionId' => $sessionId); $OrderRetrieveRequestUrl = OpenPayU_Configuration::getServiceUrl() . 'co/openpayu/OrderRetrieveRequest'; if ($debug) { OpenPayU::addOutputConsole('OpenPayU endpoint for OrderRetrieveRequest message', $OrderRetrieveRequestUrl); } $oauthResult = OpenPayu_OAuth::accessTokenByClientCredentials(); OpenPayU::setOpenPayuEndPoint($OrderRetrieveRequestUrl . '?oauth_token=' . $oauthResult->getAccessToken()); $xml = OpenPayU::buildOrderRetrieveRequest($req); if ($debug) { OpenPayU::addOutputConsole('OrderRetrieveRequest message', htmlentities($xml)); } $merchantPosId = OpenPayU_Configuration::getMerchantPosId(); $signatureKey = OpenPayU_Configuration::getSignatureKey(); $response = OpenPayU::sendOpenPayuDocumentAuth($xml, $merchantPosId, $signatureKey); if ($debug) { OpenPayU::addOutputConsole('OrderRetrieveResponse message', htmlentities($response)); } $status = OpenPayU::verifyOrderRetrieveResponseStatus($response); if ($debug) { OpenPayU::addOutputConsole('OrderRetrieveResponse status', serialize($status)); } $result = new OpenPayU_Result(); $result->setStatus($status); $result->setError($status['StatusCode']); $result->setSuccess($status['StatusCode'] == 'OPENPAYU_SUCCESS' ? TRUE : FALSE); $result->setRequest($req); $result->setResponse($response); try { $assoc = OpenPayU::parseOpenPayUDocument($response); $result->setResponse($assoc); } catch (Exception $ex) { if ($debug) { OpenPayU::addOutputConsole('OrderRetrieveResponse parse result exception', $ex->getMessage()); } } return $result; }