/** * Function returns authorize by client credentials response * @access public * @param bool $debug * @return OpenPayUResultOAuth $result */ public static function accessTokenByClientCredentials($debug = true) { $url = OpenPayUConfiguration::getServiceUrl() . 'oauth/authorize'; $result = new OpenPayUResultOAuth(); $result->setUrl($url); OpenPayU::setOpenPayuEndPoint($url); if ($debug) { OpenPayU::addOutputConsole('retrieve accessToken', 'retrieve accessToken, client credentials mode, url: ' . $url); } try { OpenPayU::setOpenPayuEndPoint($url); $json = OpenPayUOAuth::getAccessTokenByClientCredentials(OpenPayUConfiguration::getClientId(), OpenPayUConfiguration::getClientSecret()); $result->setAccessToken($json->{'access_token'}); if (isset($json->{'payu_user_email'})) { $result->setPayuUserEmail($json->{'payu_user_email'}); } if (isset($json->{'payu_user_id'})) { $result->setPayuUserId($json->{'payu_user_id'}); } $result->setExpiresIn($json->{'expires_in'}); if (isset($json->{'refresh_token'})) { $result->setRefreshToken($json->{'refresh_token'}); } $result->setSuccess(1); } catch (Exception $ex) { $result->setSuccess(0); $result->setError($ex->getMessage()); } return $result; }
/** * Function use to update status * @access public * @param string $sessionId * @param string $status * @param bool $debug * @return OpenPayUResult $result */ public static function updateStatus($sessionId, $status, $debug = true) { $rq = array('ReqId' => md5(rand()), 'MerchantPosId' => OpenPayUConfiguration::getMerchantPosid(), 'SessionId' => $sessionId, 'OrderStatus' => $status, 'Timestamp' => date('c')); $result = new OpenPayUResult(); $result->setRequest($rq); $url = OpenPayUConfiguration::getServiceUrl() . 'co/openpayu/OrderStatusUpdateRequest'; if ($debug) { OpenPayU::addOutputConsole('OpenPayU endpoint for OrderStatusUpdateRequest message', $url); } $oauthResult = OpenPayUOAuthenticate::accessTokenByClientCredentials(); OpenPayU::setOpenPayuEndPoint($url . '?oauth_token=' . $oauthResult->getAccessToken()); $xml = OpenPayU::buildOrderStatusUpdateRequest($rq); if ($debug) { OpenPayU::addOutputConsole('OrderStatusUpdateRequest message', htmlentities($xml)); } $merchantPosId = OpenPayUConfiguration::getMerchantPosid(); $signatureKey = OpenPayUConfiguration::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']); if (isset($status['StatusDesc'])) { $result->setMessage($status['StatusDesc']); } $result->setSuccess($status['StatusCode'] == 'OpenPayUSUCCESS' ? true : false); $result->setResponse(OpenPayU::parseOpenPayUDocument($response)); return $result; }