isPrePage()) { SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, $objSiteSess); } $uniqid = $objSiteSess->getUniqId(); $objPurchase->verifyChangeCart($uniqid, $objCartSess); $payment_id = $this->getPaymentId(); if ($payment_id === false) { SC_Utils_Ex::sfDispSiteError(PAGE_ERROR, "", true); return; } $module_path = $this->getModulePath($payment_id); if ($module_path === false) { SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, "", true, "モジュールファイルの取得に失敗しました。
この手続きは無効となりました。"); return; } require_once($module_path); } /** * モバイルページを初期化する. * * @return void */ function mobileInit() { $this->init(); } /** * Page のプロセス(モバイル). * * @return void */ function mobileProcess() { $this->process(); } /** * デストラクタ. * * @return void */ function destroy() { parent::destroy(); } /** * 支払い方法IDをキーにして, 決済モジュールのパスを取得する. * * 決済モジュールが取得できた場合は, require 可能な決済モジュールのパスを返す. * 支払い方法IDが無効な場合, 取得したパスにファイルが存在しない場合は false * * @param integer $payment_id 支払い方法ID * @return string|boolean 成功した場合は決済モジュールのパス; * 失敗した場合 false */ function getModulePath($payment_id) { $objQuery =& SC_Query::getSingletonInstance(); $sql = <<< __EOS__ SELECT module_path FROM dtb_payment WHERE payment_id = ? __EOS__; $module_path = $objQuery->getOne($sql, array($payment_id)); if (file_exists($module_path)) { return $module_path; } return false; } /** * 支払い方法ID を取得する. * * 以下の順序で支払い方法IDを取得する. * * 1. $_SESSION['payment_id'] * 2. $_POST['payment_id'] * 3. $_GET['payment_id'] * * 支払い方法IDが取得できない場合は false を返す. * * @access private * @return integer|boolean 支払い方法の取得に成功した場合は支払い方法IDを返す; * 失敗した場合は, false を返す. */ function getPaymentId() { if (isset($_SESSION['payment_id']) && !SC_Utils_Ex::isBlank($_SESSION['payment_id'])) { return $_SESSION['payment_id']; } if (isset($_POST['payment_id']) && !SC_Utils_Ex::isBlank($_POST['payment_id'])) { return $_POST['payment_id']; } if (isset($_GET['payment_id']) && !SC_Utils_Ex::isBlank($_GET['payment_id'])) { return $_GET['payment_id']; } return false; } } ?>