/** * Function retrieving Order data from PayU Service * @access public * @param string $sessionId * @param bool $debug * @return OpenPayUResult $result */ public static function retrieve($sessionId, $debug = true) { $req = array('ReqId' => md5(rand()), 'MerchantPosId' => OpenPayUConfiguration::getMerchantPosid(), 'SessionId' => $sessionId); $OrderRetrieveRequestUrl = OpenPayUConfiguration::getServiceUrl() . 'co/openpayu/OrderRetrieveRequest'; if ($debug) { OpenPayU::addOutputConsole('OpenPayU endpoint for OrderRetrieveRequest message', $OrderRetrieveRequestUrl); } $oauthResult = OpenPayUOAuthenticate::accessTokenByClientCredentials(); OpenPayU::setOpenPayuEndPoint($OrderRetrieveRequestUrl . '?oauth_token=' . $oauthResult->getAccessToken()); $xml = OpenPayU::buildOrderRetrieveRequest($req); if ($debug) { OpenPayU::addOutputConsole('OrderRetrieveRequest message', htmlentities($xml)); } $merchantPosId = OpenPayUConfiguration::getMerchantPosid(); $signatureKey = OpenPayUConfiguration::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 OpenPayUResult(); $result->setStatus($status); $result->setError($status['StatusCode']); if (isset($status['StatusDesc'])) { $result->setMessage($status['StatusDesc']); } $result->setSuccess($status['StatusCode'] == 'OpenPayUSUCCESS' ? 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; }