コード例 #1
0
ファイル: SpiUtils.php プロジェクト: gabrieltong/dayu
 protected static function logCommunicationError($remoteSign, $localSign, $paramStr, $body)
 {
     $localIp = isset($_SERVER["SERVER_ADDR"]) ? $_SERVER["SERVER_ADDR"] : "CLI";
     $logger = new TopLogger();
     $logger->conf["log_file"] = rtrim(TOP_SDK_WORK_DIR, '\\/') . '/' . "logs/top_comm_err_" . date("Y-m-d") . ".log";
     $logger->conf["separator"] = "^_^";
     $logData = array("checkTopSign error", "remoteSign=" . $remoteSign, "localSign=" . $localSign, "paramStr=" . $paramStr, "body=" . $body);
     $logger->log($logData);
 }
コード例 #2
0
ファイル: TopClient.php プロジェクト: noikiy/Dongxi
 public function execute($request, $session = null)
 {
     $result = new ResultSet();
     if ($this->checkRequest) {
         try {
             $request->check();
         } catch (Exception $e) {
             $result->code = $e->getCode();
             $result->msg = $e->getMessage();
             return $result;
         }
     }
     //组装系统参数
     $sysParams["app_key"] = $this->appkey;
     $sysParams["v"] = $this->apiVersion;
     $sysParams["format"] = $this->format;
     $sysParams["sign_method"] = $this->signMethod;
     $sysParams["method"] = $request->getApiMethodName();
     $sysParams["timestamp"] = date("Y-m-d H:i:s");
     $sysParams["partner_id"] = $this->sdkVersion;
     if (null != $session) {
         $sysParams["session"] = $session;
     }
     //获取业务参数
     $apiParams = $request->getApiParas();
     //签名
     $sysParams["sign"] = $this->generateSign(array_merge($apiParams, $sysParams));
     //系统参数放入GET请求串
     $requestUrl = $this->gatewayUrl . "?";
     foreach ($sysParams as $sysParamKey => $sysParamValue) {
         $requestUrl .= "{$sysParamKey}=" . urlencode($sysParamValue) . "&";
     }
     $requestUrl = substr($requestUrl, 0, -1);
     //发起HTTP请求
     try {
         $resp = $this->curl($requestUrl, $apiParams);
     } catch (Exception $e) {
         $this->logCommunicationError($sysParams["method"], $requestUrl, "HTTP_ERROR_" . $e->getCode(), $e->getMessage());
         $result->code = $e->getCode();
         $result->msg = $e->getMessage();
         return $result;
     }
     //解析TOP返回结果
     $respWellFormed = false;
     if ("json" == $this->format) {
         $respObject = json_decode($resp);
         if (null !== $respObject) {
             $respWellFormed = true;
             foreach ($respObject as $propKey => $propValue) {
                 $respObject = $propValue;
             }
         }
     } else {
         if ("xml" == $this->format) {
             $respObject = @simplexml_load_string($resp);
             if (false !== $respObject) {
                 $respWellFormed = true;
             }
         }
     }
     //返回的HTTP文本不是标准JSON或者XML,记下错误日志
     if (false === $respWellFormed) {
         $this->logCommunicationError($sysParams["method"], $requestUrl, "HTTP_RESPONSE_NOT_WELL_FORMED", $resp);
         $result->code = 0;
         $result->msg = "HTTP_RESPONSE_NOT_WELL_FORMED";
         return $result;
     }
     //如果TOP返回了错误码,记录到业务错误日志中
     if (isset($respObject->code)) {
         $logger = new TopLogger();
         $logger->conf["log_file"] = rtrim(TOP_SDK_WORK_DIR, '\\/') . '/' . "logs/top_biz_err_" . $this->appkey . "_" . date("Y-m-d") . ".log";
         $logger->log(array(date("Y-m-d H:i:s"), $resp));
     }
     return $respObject;
 }
コード例 #3
0
ファイル: TopClient.php プロジェクト: ISCLOUDX/alisms
 protected function logCommunicationError($apiName, $requestUrl, $errorCode, $responseTxt)
 {
     $localIp = isset($_SERVER["SERVER_ADDR"]) ? $_SERVER["SERVER_ADDR"] : "CLI";
     $logger = new TopLogger();
     $logger->conf["log_file"] = rtrim(TOP_SDK_WORK_DIR, '\\/') . '/' . "logs/top_comm_err_" . $this->appkey . "_" . date("Y-m-d") . ".log";
     $logger->conf["separator"] = "^_^";
     $logData = array(date("Y-m-d H:i:s"), $apiName, $this->appkey, $localIp, PHP_OS, $this->sdkVersion, $requestUrl, $errorCode, str_replace("\n", "", $responseTxt));
     $logger->log($logData);
 }