/** * カートに変化が無いか検証する. * * ユニークIDとセッションのユニークIDを比較し, 異なる場合は * エラー画面を表示する. * * カートが空の場合, 購入ボタン押下後にカートが変更された場合は * カート画面へ遷移する. * * @param string $uniqId ユニークID * @param SC_CartSession $objCartSession * @return void */ public function verifyChangeCart($uniqId, &$objCartSession) { $cartKey = $objCartSession->getKey(); // カート内が空でないか if (SC_Utils_Ex::isBlank($cartKey)) { SC_Response_Ex::sendRedirect(CART_URL); exit; } // 初回のみカートの内容を保存 $objCartSession->saveCurrentCart($uniqId, $cartKey); /* * POSTのユニークIDとセッションのユニークIDを比較 *(ユニークIDがPOSTされていない場合はスルー) */ if (!SC_SiteSession_Ex::checkUniqId()) { SC_Utils_Ex::sfDispSiteError(CANCEL_PURCHASE); exit; } // 購入ボタンを押してから変化がないか $quantity = $objCartSession->getTotalQuantity($cartKey); if ($objCartSession->checkChangeCart($cartKey) || !($quantity > 0)) { SC_Response_Ex::sendRedirect(CART_URL); exit; } }