function retXmlHttpCall($opposite_address)
 {
     $queryXml = null;
     $objH = new HttpClientUtil();
     try {
         $queryXml = $objH->httpClientCall($this->getURL($opposite_address), $this->getInputCharset());
     } catch (Exception $e) {
         throw new SDKRuntimeException("http请求失败:" + $e . getMessage());
     } catch (SDKRuntimeException $e) {
         die($e->errorMessage());
     }
     $xmlParse = new XmlParseUtil();
     return $xmlParse->openapiXmlToMap($queryXml, $this->getInputCharset());
 }
 /**
  * 生成支付跳转链接
  * 
  * @return Wap支付中心URL
  * @throws Exception Wap支付中心连接异常, Wap支付中心初始化返回异常
  */
 function getURL()
 {
     $paraString = parent::genParaStr();
     $domain = parent::getDomain();
     $url = $domain . parent::$this->WAP_PAY_OPPOSITE_ADDRESS . '?' . $paraString;
     try {
         $http = new HttpClientUtil();
         $util = new XmlParseUtil();
         $str = $http->httpClientCall($url, "utf-8");
         $wapPayInitResponse = new WapPayInitResponse($util->openapiXmlToMap($str, "utf-8"), parent::getSecretKey());
     } catch (SDKRuntimeException $e) {
         die($e->errorMessage());
         throw new SDKRuntimeException('Wap支付中心连接异常.' . $e->getMessage(), e);
     }
     if ($wapPayInitResponse && $wapPayInitResponse->isRetCodeOK()) {
         return $wapPayInitResponse->getURL();
     } else {
         throw new SDKRuntimeException('Wap支付中心初始化返回异常.' . $wapPayInitResponse->getMessage());
     }
 }
 /**
  * Sends a request type json 
  * 
  * @param Object $request this object is encode to json is used to request data
  * @param PayUHttpRequestInfo $payUHttpRequestInfo object with info to send an api request
  * @param bool $removeNullValues if remove null values in request and response object 
  * @return string response
  * @throws RuntimeException
  */
 public static function sendRequest($request, PayUHttpRequestInfo $payUHttpRequestInfo, $removeNullValues = NULL)
 {
     if (!isset($removeNullValues)) {
         $removeNullValues = PayUConfig::REMOVE_NULL_OVER_REQUEST;
     }
     if ($removeNullValues && $request != null) {
         $request = PayURequestObjectUtil::removeNullValues($request);
     }
     if ($request != NULL) {
         $request = PayURequestObjectUtil::encodeStringUtf8($request);
     }
     if (isset($request->transaction->order->signature)) {
         $request->transaction->order->signature = SignatureUtil::buildSignature($request->transaction->order, PayU::$merchantId, PayU::$apiKey, SignatureUtil::MD5_ALGORITHM);
     }
     $requestJson = json_encode($request);
     $responseJson = HttpClientUtil::sendRequest($requestJson, $payUHttpRequestInfo);
     if ($responseJson == 200 || $responseJson == 204) {
         return true;
     } else {
         $response = json_decode($responseJson);
         if (!isset($response)) {
             throw new PayUException(PayUErrorCodes::JSON_DESERIALIZATION_ERROR, sprintf(' Error decoding json. Please verify the json structure received. the json isn\'t added in this message ' . ' for security reasons please verify the variable $responseJson on class PayUApiServiceUtil'));
         }
         if ($removeNullValues) {
             $response = PayURequestObjectUtil::removeNullValues($response);
         }
         $response = PayURequestObjectUtil::formatDates($response);
         if ($payUHttpRequestInfo->environment === Environment::PAYMENTS_API || $payUHttpRequestInfo->environment === Environment::REPORTS_API) {
             if (PayUResponseCode::SUCCESS == $response->code) {
                 return $response;
             } else {
                 throw new PayUException(PayUErrorCodes::API_ERROR, $response->error);
             }
         } else {
             if ($payUHttpRequestInfo->environment === Environment::SUBSCRIPTIONS_API) {
                 if (!isset($response->type) || $response->type != 'BAD_REQUEST' && $response->type != 'NOT_FOUND' && $response->type != 'MALFORMED_REQUEST') {
                     return $response;
                 } else {
                     throw new PayUException(PayUErrorCodes::API_ERROR, $response->description);
                 }
             }
         }
     }
 }
Example #4
0
 function httpCallRetXmlStr($opposite_address)
 {
     $objH = new HttpClientUtil();
     return $objH->httpClientCall($this->getURL($opposite_address), $this->getInputCharset());
 }