source: branches/version-1/data/downloads/module/mdl_cybs/class/mdl_cybs_config.php @ 17244

Revision 17244, 5.5 KB checked in by adachi, 16 years ago (diff)

サイバーソース決済モジュール暫定コミット

  • 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 * ¥â¥¸¥å¡¼¥ëÀßÄê¤Î¼èÆÀ¡¦¹¹¿·¤ò¹Ô¤¦
4 *
5 */
6class Mdl_Cybs_Config {
7    var $arrConfig;
8
9    /**
10     * dtb_payment¤Îmemo**¤ØÅÐÏ¿¤¹¤ë¹àÌܤòÁý¤ä¤¹¾ì¹ç¤Ï¡¢
11     * ¤³¤ÎÇÛÎó¤Ëmemo¤ËÂбþ¤¹¤ë¥­¡¼Ì¾¤òÄɲä·¡¢
12     * ¥Æ¥ó¥×¥ì¡¼¥È¦¤ÇÄɲä·¤¿¥­¡¼Ì¾¤ò»ÈÍѤ¹¤ë
13     *
14     * @see $this->_getConfig()
15     * @see $this->createSqlArray()
16     * @var array
17     */
18    var $arrPaymentMemoCols = array(
19        'memo01' => 'cybs_request_url',
20        'memo02' => 'cybs_merchant_id',
21        'memo03' => 'cybs_ondemand_use',
22        'memo04' => 'cybs_3d_use'
23    );
24
25    /**
26     * Mdl_Cybs_Config¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤ò¼èÆÀ¤¹¤ë.
27     * ¥¤¥ó¥¹¥¿¥ó¥¹À¸À®¤Ïnew±é»»»Ò¤ò»ÈÍѤ»¤ºgetInstanse()¤ò»ÈÍѤ¹¤ë
28     *
29     * @return Mdl_Cybs_Config
30     */
31    function &getInstanse() {
32        static $_CybsConfigObj;
33
34        if ($_CybsConfigObj == null) {
35            $_CybsConfigObj = new Mdl_Cybs_Config();
36        }
37        return $_CybsConfigObj;
38    }
39
40    /**
41     * ÀßÄê¤ò¼èÆÀ¤¹¤ë
42     *
43     * @param string $key
44     * @return array|null
45     */
46    function getConfig($key = null) {
47        if (empty($this->arrConfig)) {
48            $this->arrConfig = $this->_getConfig();
49        }
50
51        // °ú¿ô¤¬Ìµ¤¤¾ì¹ç¤ÏÁ´¤Æ¤Î¥Ç¡¼¥¿¤òÊÖ¤¹
52        if (empty($key)) {
53            return $this->arrConfig;
54        }
55
56        // $key¤¬°ú¿ô¤ÇÅϤµ¤ì¤¿¾ì¹ç¤Ï$key¤ËÂбþ¤¹¤ëÃͤòÊÖ¤¹
57        return isset($this->arrConfig[$key])
58            ? $this->arrConfig[$key]
59            : null;
60    }
61
62    /**
63     * DB¤«¤éÀßÄê¤ò¼èÆÀ¤¹¤ë
64     *
65     * @return array
66     */
67    function _getConfig() {
68        // memo01¢·memo10
69        $arrMemo = array();
70        foreach ($this->arrPaymentMemoCols as $k => $v) {
71            $arrMemo[] = "$k as $v";
72        }
73        $memoCols = implode(',', $arrMemo);
74        $sql =<<<END
75SELECT
76    module_id,
77    $memoCols
78FROM
79    dtb_payment
80WHERE
81    module_id = ?
82END;
83        $objQuery = new SC_Query;
84        $arrRet = $objQuery->getAll($sql, array(MDL_CYBS_ID));
85        return isset($arrRet[0]) ? $arrRet[0] : array();
86    }
87
88    /**
89     * DB¤ØÀßÄê¤òÅÐÏ¿¤¹¤ë.
90     *
91     * @param array $arrConfig
92     */
93    function registerConfig($arrConfig) {
94        $table = 'dtb_payment';
95        $where = 'module_id = ' . MDL_CYBS_ID;
96
97        $objQuery = new SC_Query;
98        $count = $objQuery->count($table, $where);
99
100        if ($count) {
101            $objQuery->update($table, $arrConfig, $where);
102        } else {
103            $objQuery->insert($table, $arrConfig);
104        }
105    }
106
107    /**
108     * Insert/UpdateÍѤÎÏ¢ÁÛÇÛÎó¤òÀ¸À®¤¹¤ë
109     *
110     * @param SC_FormParam $objForm
111     * @return array
112     */
113    function createSqlArray($objForm) {
114        $objSess = new SC_Session;
115
116        $arrData = array();
117        $arrData["payment_method"] = "¥µ¥¤¥Ð¡¼¥½¡¼¥¹¥¯¥ì¥¸¥Ã¥È";
118        $arrData["fix"] = 3;
119        $arrData["module_id"] = MDL_CYBS_ID;
120        $arrData["module_path"] = MODULE_PATH . "mdl_cybs/mdl_cybs_credit.php";
121        // memo01¢·memo10
122        foreach ($this->arrPaymentMemoCols as $k => $v) {
123            $arrData[$k] = $objForm->getValue($v);
124        }
125        $arrData["del_flg"] = "0";
126        $arrData["creator_id"] = $objSess->member_id;
127        $arrData["update_date"] = "NOW()";
128
129        return $arrData;
130    }
131
132    /**
133     * 3D¥»¥­¥å¥¢¤òÍøÍѤ¹¤ë¤«¤É¤¦¤«
134     *
135     * @return boolean
136     */
137    function use3D() {
138        $use3D = $this->getConfig('cybs_3d_use');
139
140        return $use3D
141            ? true
142            : false;
143    }
144
145    /**
146     * ¥ª¥ó¥Ç¥Þ¥ó¥É²Ý¶â¤¬Í­¸ú¤«¤É¤¦¤«
147     *
148     * @return boolean
149     */
150    function enableOndemand() {
151        // Èó²ñ°÷¤Ï̵¸ú
152        $objCustomer = new SC_Customer;
153        if (!$objCustomer->isLoginSuccess()) return false;
154
155        $useOndemand = $this->getConfig('cybs_ondemand_use');
156
157        return $useOndemand ? true : false;
158    }
159
160    /**
161     * ²ñ°÷¤Î¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥óID¤òÊÖ¤¹.
162     *
163     * array(
164     *    'subs_id' => '***',
165     *    'merchant_ref_number' => '***',
166     * ),
167     * array(
168     *    'subs_id' => '***',
169     *    'merchant_ref_number' => '***',
170     * ),
171     * ...
172     *
173     * @return array
174     */
175    function getSubsIds() {
176        $objCustomer = new SC_Customer;
177        $objCustomer->updateSession();
178        $subsDataString = $objCustomer->getValue('cybs_subs_id');
179
180        if (is_null($subsDataString)) {
181            return array();
182        }
183
184        $subsData = unserialize($subsDataString);
185
186        return is_array($subsData) ? $subsData : array();
187    }
188
189    /**
190     * ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥óID¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÅÐÏ¿¤¹¤ë.
191     *
192     * @param string $subsId
193     * @param integer $merchant_ref_number
194     * @param array $arrSubsResults
195     */
196    function addSubsId($subsId, $merchant_ref_number) {
197        if (!$this->canAddSubsId()) {
198            return;
199        }
200        $objCustomer = new SC_Customer;
201        $customerId = $objCustomer->getValue('customer_id');
202
203        $arrSubsId = $this->getSubsIds();
204
205        $arrSubsId[] = array(
206            'subs_id' => $subsId,
207            'merchant_ref_number' => $merchant_ref_number);
208        $arrUpdate = array('cybs_subs_id' => serialize($arrSubsId));
209
210        $objQuery = new SC_Query;
211        $objQuery->update('dtb_customer', $arrUpdate, 'customer_id = ?', array($customerId));
212    }
213
214    /**
215     * ¥µ¥Ö¥¹¥¯¥ê¥×¥·¥ç¥ó¤ÎÅÐÏ¿¿ô¤¬Max¤«¤É¤¦¤«¤òȽÄꤹ¤ë
216     *
217     * @return boolean
218     */
219    function canAddSubsId() {
220        $arrSubsData = $this->getSubsIds();
221        if (is_array($arrSubsData) && count($arrSubsData) < MDL_CYBS_SUBS_ID_MAX) {
222            return true;
223        }
224        return false;
225    }
226}
227?>
Note: See TracBrowser for help on using the repository browser.