source: branches/feature-module-update/data/class/pages/upgrade/LC_Page_Upgrade_ProductsList.php @ 16473

Revision 16473, 4.3 KB checked in by adachi, 15 years ago (diff)

jsonデータ検証処理を追加

  • Property svn:eol-style set to LF
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-httpd-php
Line 
1<?php
2/*
3 * Copyright(c) 2000-2007 LOCKON CO.,LTD. All Rights Reserved.
4 *
5 * http://www.lockon.co.jp/
6 */
7
8// {{{ requires
9require_once CLASS_PATH . 'pages/LC_Page.php';
10
11/**
12 * オーナーズストア購入商品一覧を返すページクラス.
13 *
14 * @package Page
15 * @author LOCKON CO.,LTD.
16 * @version $Id$
17 */
18class LC_Page_Upgrade_ProductsList extends LC_Page {
19
20    // }}}
21    // {{{ functions
22
23    /**
24     * Page を初期化する.
25     *
26     * @return void
27     */
28    function init() {
29        $this->objJson = new Services_Json();
30        $this->objSess = new SC_Session();
31    }
32
33    /**
34     * Page のプロセス.
35     *
36     * @return void
37     */
38    function process() {
39        $errFormat = '* error! code:%s / debug:%s';
40
41        GC_Utils::gfPrintLog('###ProductsList Start###');
42
43        // 管理画面ログインチェック
44        GC_Utils::gfPrintLog('* admin auth start');
45        if ($this->objSess->isSuccess() !== SUCCESS) {
46            $arrErr = array(
47                'status'  => OWNERSSTORE_STATUS_ERROR,
48                'errcode' => OWNERSSTORE_ERR_PL_ADMIN_AUTH,
49                'body' => '配信サーバとの通信中にエラーが発生しました。エラーコード:' . OWNERSSTORE_ERR_PL_ADMIN_AUTH
50            );
51            echo $this->objJson->encode($arrErr);
52            GC_Utils::gfPrintLog(
53                sprintf($errFormat, $arrErr['errcode'], serialize($this->objSess))
54            );
55            exit;
56        }
57
58        // TODO CSRF対策が必須
59
60        $objReq = new HTTP_Request();
61        $objReq->setUrl('http://cube-shopaccount/upgrade/index.php'); // TODO URL定数化
62        $objReq->setMethod('POST');
63        $objReq->addPostData('mode', 'products_list');
64        $objReq->addPostData('site_url', SITE_URL);
65        $objReq->addPostData('ssl_url', SSL_URL);
66
67        // リクエストを開始
68        GC_Utils::gfPrintLog('* http request start');
69        if (PEAR::isError($e = $objReq->sendRequest())) {
70            $arrErr = array(
71                'status'  => OWNERSSTORE_STATUS_ERROR,
72                'errcode' => OWNERSSTORE_ERR_DL_HTTP_REQ,
73                'body' => '配信サーバとの通信中にエラーが発生しました。エラーコード:' . OWNERSSTORE_ERR_DL_HTTP_REQ
74            );
75            echo $this->objJson->encode($arrErr);
76            GC_Utils::gfPrintLog(
77                sprintf($errFormat, $arrErr['errcode'], serialize($e))
78            );
79            exit;
80        }
81
82        GC_Utils::gfPrintLog('* http response check start');
83        if ($objReq->getResponseCode() !== 200) {
84            $arrErr = array(
85                'status'  => OWNERSSTORE_STATUS_ERROR,
86                'errcode' => OWNERSSTORE_ERR_DL_HTTP_RESP_CODE,
87                'body' => '配信サーバとの通信中にエラーが発生しました。エラーコード:' . OWNERSSTORE_ERR_DL_HTTP_RESP_CODE
88            );
89            echo $this->objJson->encode($arrErr);
90            GC_Utils::gfPrintLog(
91                sprintf($errFormat, $arrErr['errcode'], serialize($objReq))
92            );
93            exit;
94        }
95
96        $body = $objReq->getResponseBody();
97        $jsonData = $this->objJson->decode($body);
98        GC_Utils::gfPrintLog('* json deta check start');
99        if (empty($jsonData)) {
100            $arrErr = array(
101                'status'  => OWNERSSTORE_STATUS_ERROR,
102                'errcode' => OWNERSSTORE_ERR_PL_INVALID_JSON_DATA,
103                'body' => '配信サーバとの通信中にエラーが発生しました。エラーコード:' . OWNERSSTORE_ERR_PL_INVALID_JSON_DATA
104            );
105            echo $this->objJson->encode($arrErr);
106            GC_Utils::gfPrintLog(
107                sprintf($errFormat, $arrErr['errcode'], serialize($body))
108            );
109            exit;
110        }
111        GC_Utils::gfPrintLog('* json status check start');
112        if ($jsonData->status === OWNERSSTORE_STATUS_SUCCESS) {
113            GC_Utils::gfPrintLog('* get products list ok');
114            echo $body;
115            exit;
116        } else {
117            echo $body;
118            GC_Utils::gfPrintLog(
119                sprintf($errFormat, $jsonData->errcode, serialize($objReq))
120            );
121            exit;
122        }
123    }
124
125    /**
126     * デストラクタ.
127     *
128     * @return void
129     */
130    function destroy() {
131        GC_Utils::gfPrintLog('###ProductsList END###');
132    }
133}
134?>
Note: See TracBrowser for help on using the repository browser.