Example #1
0
 /**
  * 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 builds OpenPayU Xml Document
  * @access public
  * @param string $data
  * @param string $start_element
  * @param integer $request
  * @param string $xml_version
  * @param string $xml_encoding
  * @return string $xml
  */
 public static function buildOpenPayUDocument($data, $start_element, $request = 1, $xml_version = '1.0', $xml_encoding = 'UTF-8')
 {
     if (!is_array($data)) {
         return false;
     }
     $xml = new XmlWriter();
     $xml->openMemory();
     $xml->startDocument($xml_version, $xml_encoding);
     $xml->startElementNS(null, 'OpenPayU', 'http://www.openpayu.com/openpayu.xsd');
     $header = $request == 1 ? 'HeaderRequest' : 'HeaderResponse';
     $xml->startElement($header);
     $xml->writeElement('Algorithm', 'MD5');
     $xml->writeElement('SenderName', 'POSID=' . OpenPayUConfiguration::getMerchantPosid() . ';CUSTOM_PLUGIN=PRESTASHOP');
     $xml->writeElement('Version', $xml_version);
     $xml->endElement();
     // domain level - open
     $xml->startElement(OpenPayUDomain::getDomain4Message($start_element));
     // message level - open
     $xml->startElement($start_element);
     self::arr2xml($xml, $data);
     // message level - close
     $xml->endElement();
     // domain level - close
     $xml->endElement();
     // document level - close
     $xml->endElement();
     return $xml->outputMemory(true);
 }
 /**
  * @access public
  * @param string
  */
 public static function setSignatureKey($value)
 {
     self::$signature_key = trim($value);
 }
Example #4
0
 /**
  * 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;
 }