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); } } } } }
function httpCallRetXmlStr($opposite_address) { $objH = new HttpClientUtil(); return $objH->httpClientCall($this->getURL($opposite_address), $this->getInputCharset()); }