Ejemplo n.º 1
0
 /**
  * カートを購入モードに設定
  *
  * @param SiteSession $objSiteSess
  * @param CartSession $objCartSess
  * @return void
  */
 public function lfSetCurrentCart(&$objSiteSess, &$objCartSess, $cartKey)
 {
     // 正常に登録されたことを記録しておく
     $objSiteSess->setRegistFlag();
     $pre_uniqid = $objSiteSess->getUniqId();
     // 注文一時IDの発行
     $objSiteSess->setUniqId();
     $uniqid = $objSiteSess->getUniqId();
     // エラーリトライなどで既にuniqidが存在する場合は、設定を引き継ぐ
     if ($pre_uniqid != '') {
         $this->lfUpdateOrderTempid($pre_uniqid, $uniqid);
     }
     // カートを購入モードに設定
     $objCartSess->registerKey($cartKey);
     $objCartSess->saveCurrentCart($uniqid, $cartKey);
 }
Ejemplo n.º 2
0
 /**
  * カートに変化が無いか検証する.
  *
  * ユニークIDとセッションのユニークIDを比較し, 異なる場合は
  * エラー画面を表示する.
  *
  * カートが空の場合, 購入ボタン押下後にカートが変更された場合は
  * カート画面へ遷移する.
  *
  * @param  string         $uniqId         ユニークID
  * @param  CartSession $objCartSession
  * @return void
  */
 public function verifyChangeCart($uniqId, &$objCartSession)
 {
     $cartKey = $objCartSession->getKey();
     // カート内が空でないか
     if (Utils::isBlank($cartKey)) {
         Application::alias('eccube.response')->sendRedirect(CART_URL);
         exit;
     }
     // 初回のみカートの内容を保存
     $objCartSession->saveCurrentCart($uniqId, $cartKey);
     /*
      * POSTのユニークIDとセッションのユニークIDを比較
      *(ユニークIDがPOSTされていない場合はスルー)
      */
     if (!Application::alias('eccube.site_session')->checkUniqId()) {
         Utils::sfDispSiteError(CANCEL_PURCHASE);
         exit;
     }
     // 購入ボタンを押してから変化がないか
     $quantity = $objCartSession->getTotalQuantity($cartKey);
     if ($objCartSession->checkChangeCart($cartKey) || !($quantity > 0)) {
         Application::alias('eccube.response')->sendRedirect(CART_URL);
         exit;
     }
 }