コード例 #1
0
ファイル: ym.php プロジェクト: kapai69/fl-ru-damp
}
$method = __paramInit('string', 'm', null, null);
$bodyRaw = file_get_contents('php://input');
if (empty($bodyRaw)) {
    exit;
}
$xml = simplexml_load_string($bodyRaw);
$json = json_encode($xml);
$decodedArray = json_decode($json, true);
$is_fail = false;
$clientOrderId = @$decodedArray['@attributes']['clientOrderId'];
if (!$clientOrderId) {
    $is_fail = true;
}
$converter = new Array2XML();
$converter->setConvertFromEncoding('windows-1251');
$converter->setTopNodeName($method . 'Response');
if ($is_fail) {
    $converter->importArray(array('clientOrderId' => $clientOrderId, 'status' => 3, 'error' => 41, 'processedDT' => date('c')));
    echo $converter->saveXml();
}
switch ($method) {
    case 'testDeposition':
        /*
         * <?xml version="1.0" encoding="UTF-8"?>
         * <testDepositionResponse clientOrderId="12345" status="0" processedDT="2011-07-01T20:38:01.000Z"/>
         */
        $converter->importArray(array('@attributes' => array('clientOrderId' => $clientOrderId, 'status' => 0, 'processedDT' => date('c'))));
        break;
    case 'makeDeposition':
        /*
コード例 #2
0
 /**
  * @param string $uri
  * @param string $params
  * @return OriginalServerResponse
  */
 private function makePostCurlRequest($uri, $params)
 {
     $cmd = key($params);
     $params = current($params);
     $converter = new Array2XML();
     $converter->setConvertFromEncoding('windows-1251');
     $converter->setTopNodeName($cmd);
     $converter->importArray($params);
     $data = $converter->saveXml();
     $crypt = $this->getCryptOption();
     if ($crypt) {
         $cryptBlock = new CryptBlock($crypt);
         $encryptData = $cryptBlock->encrypt($data);
     } else {
         $encryptData = $data;
     }
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/log.php";
     $log = new \log('reserves_payout/' . SERVER . '-%d%m%Y.log');
     $log->writeln(PHP_EOL . PHP_EOL);
     $log->writeln('[' . date('d.m.Y H:i:s') . ']');
     $log->writeln($data);
     $headers = $this->prepareRequestHeaders();
     $curl = curl_init($uri);
     curl_setopt($curl, CURLOPT_HEADER, true);
     curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
     if ($crypt) {
         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
         curl_setopt($curl, CURLOPT_SSLCERT, $crypt['encrypt_cert_path']);
         curl_setopt($curl, CURLOPT_SSLKEY, $crypt['private_key_path']);
         curl_setopt($curl, CURLOPT_SSLKEYPASSWD, $crypt['passphrase']);
     }
     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
     curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
     curl_setopt($curl, CURLOPT_TIMEOUT, 80);
     curl_setopt($curl, CURLOPT_POST, true);
     curl_setopt($curl, CURLOPT_POSTFIELDS, $encryptData);
     //$this->writeMessageToLogFile($this->prepareLogMessage($uri, $params));
     $responseRaw = curl_exec($curl);
     $errorCode = curl_errno($curl);
     $errorMessage = curl_error($curl);
     $responseCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
     $responseHeaderSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
     $responseHeadersRaw = trim(substr($responseRaw, 0, $responseHeaderSize));
     $responseBodyRaw = trim(substr($responseRaw, $responseHeaderSize));
     curl_close($curl);
     if ($responseCode == 200) {
         if ($crypt && $cryptBlock->isReqDecrypt()) {
             $responseBodyRaw = $cryptBlock->decrypt($responseBodyRaw);
         }
         $log->writeln($responseBodyRaw);
     }
     /*
     $this->writeMessageToLogFile(
         $this->prepareLogMessageExtended($uri, $params, $responseCode, $errorCode, $errorMessage)
     );
     */
     $this->originalServerResponse = new OriginalServerResponse();
     $this->originalServerResponse->setCode($responseCode);
     $this->originalServerResponse->setHeadersRaw($responseHeadersRaw);
     $this->originalServerResponse->setBodyRaw($responseBodyRaw);
     $this->originalServerResponse->setErrorCode($errorCode);
     $this->originalServerResponse->setErrorMessage($errorMessage);
 }