Exemplo n.º 1
0
 /**
  * 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;
 }