/** * @param \OpenPayU_Result $result * @return \stdClass * @throws Exception */ protected function getResponse($result) { $response = $result->getResponse(); if (isset($response->status)) { $status = $response->status; if ((string) $status->statusCode !== 'SUCCESS') { throw new Exception(\Zend_Json::encode($status)); } } return $response; }
protected static function build($data) { $instance = new OpenPayU_Result(); $instance->init($data); return $instance; }
/** * Function use to update status * @access public * @param string $sessionId * @param string $status * @param boolean $debug * @return object $result */ public static function updateStatus($sessionId, $status, $debug = TRUE) { $rq = array('ReqId' => md5(rand()), 'MerchantPosId' => OpenPayU_Configuration::getMerchantPosId(), 'SessionId' => $sessionId, 'OrderStatus' => $status, 'Timestamp' => date('c')); $result = new OpenPayU_Result(); $result->setRequest($rq); $url = OpenPayU_Configuration::getServiceUrl() . 'co/openpayu/OrderStatusUpdateRequest'; if ($debug) { OpenPayU::addOutputConsole('OpenPayU endpoint for OrderStatusUpdateRequest message', $url); } $oauthResult = OpenPayu_OAuth::accessTokenByClientCredentials(); OpenPayU::setOpenPayuEndPoint($url . '?oauth_token=' . $oauthResult->getAccessToken()); $xml = OpenPayU::buildOrderStatusUpdateRequest($rq); if ($debug) { OpenPayU::addOutputConsole('OrderStatusUpdateRequest message', htmlentities($xml)); } $merchantPosId = OpenPayU_Configuration::getMerchantPosId(); $signatureKey = OpenPayU_Configuration::getSignatureKey(); $response = OpenPayU::sendOpenPayuDocumentAuth($xml, $merchantPosId, $signatureKey); if ($debug) { OpenPayU::addOutputConsole('OrderStatusUpdateResponse message', htmlentities($response)); } // verify response from PayU service $status = OpenPayU::verifyOrderStatusUpdateResponseStatus($response); if ($debug) { OpenPayU::addOutputConsole('OrderStatusUpdateResponse status', serialize($status)); } $result->setStatus($status); $result->setError($status['StatusCode']); $result->setSuccess($status['StatusCode'] == 'OPENPAYU_SUCCESS' ? TRUE : FALSE); $result->setResponse(OpenPayU::parseOpenPayUDocument($response)); return $result; }