Example #1
0
 public function beforeRoute($f3)
 {
     parent::beforeRoute($f3);
     // 用户没有登陆,让用户去登陆
     if (!AuthHelper::isAuthUser()) {
         // 如果已经记录了一个回跳 URL ,则不要再覆盖这个记录了
         RouteHelper::reRoute($this, '/User/Login', !RouteHelper::hasRememberUrl());
     }
 }
Example #2
0
 public function post($f3)
 {
     // 用户没有登陆,让用户去登陆
     if (!AuthHelper::isAuthUser()) {
         // 如果已经记录了一个回跳 URL ,则不要再覆盖这个记录了
         RouteHelper::reRoute($this, '/User/Login', !RouteHelper::hasRememberUrl());
     }
     // 首先做参数合法性验证
     $validator = new Validator($f3->get('POST'));
     $addressInfo = array();
     $addressInfo['consignee'] = $validator->required('姓名不能为空')->validate('consignee');
     $addressInfo['address'] = $validator->required('地址不能为空')->validate('address');
     $addressInfo['mobile'] = $validator->required('手机号码不能为空')->digits('手机号码格式不正确')->validate('mobile');
     $addressInfo['tel'] = $validator->validate('tel');
     $addressInfo['zipcode'] = $validator->digits('邮编格式不正确')->validate('zipcode');
     $postScript = $validator->validate('postscript');
     // 订单附言
     if (!$this->validate($validator)) {
         goto out_fail;
     }
     $cartBasicService = new CartBasicService();
     $cartBasicService->loadFromStorage();
     // 加载购物车的数据
     $cartContext =& $cartBasicService->getCartContextRef();
     if ($cartContext->isEmpty()) {
         $this->addFlashMessage('购物车为空');
         goto out_fail;
     }
     // 做一次购物车计算
     $cartBasicService->calcOrderPrice();
     // 如果购物车里面有错误消息,我们需要显示它
     if ($cartContext->hasError()) {
         $this->addFlashMessageArray($cartContext->getAndClearErrorMessageArray());
     }
     // 更新用户的地址信息
     $userInfo = AuthHelper::getAuthUser();
     $userAddressService = new UserAddressService();
     $userAddressService->updateUserFirstAddress($userInfo['user_id'], $addressInfo);
     // 地址信息放入购物车结构
     $cartContext->setAddressInfo($addressInfo);
     // 订单附言放入购物车
     $cartContext->setValue('postscript', $postScript);
     // 创建或者更新订单
     $orderInfo = $cartBasicService->saveOrder($userInfo['user_id'], '买家:' . $userInfo['user_name']);
     if (!$orderInfo || $orderInfo->isEmpty()) {
         //订单创建失败,报错
         $this->addFlashMessage('订单创建失败,请联系客服');
         goto out_fail;
     }
     //订单创建成功,清空购物车
     $cartBasicService->clearStorage();
     // 跳转到支付页面
     RouteHelper::reRoute($this, RouteHelper::makeUrl('/Cart/Pay', array('order_id' => $orderInfo['order_id']), true));
     return;
     out_fail:
     RouteHelper::reRoute($this, '/Cart/Show');
 }
Example #3
0
 public function beforeRoute($f3)
 {
     global $smarty;
     parent::beforeRoute($f3);
     // 用户没有登陆,让用户去登陆
     if (!AuthHelper::isAuthUser()) {
         // 如果已经记录了一个回跳 URL ,则不要再覆盖这个记录了
         RouteHelper::reRoute($this, '/User/Login', !RouteHelper::hasRememberUrl());
         return;
     }
     //把认证用户放入到 smarty 中
     $smarty->assign('authSupplierUser', AuthHelper::getAuthUser());
 }
Example #4
0
 /**
  * 由于 KindEditor, UEditor 使用了 swfupload 用于文件上传,而 swfupload 无法使用 Session 认证
  * 我们这里只能使用 Post 来自己做认证了
  */
 public function beforeRoute($f3)
 {
     global $smarty;
     parent::beforeRoute($f3);
     // 用户没有登陆,让用户去登陆
     if (!AuthHelper::isAuthUser() && !AuthHelper::isPostCookieAuth()) {
         // 如果已经记录了一个回跳 URL ,则不要再覆盖这个记录了
         RouteHelper::reRoute($this, '/User/Login', !RouteHelper::hasRememberUrl());
         return;
     }
     //把认证用户放入到 smarty 中
     $smarty->assign('authAdminUser', AuthHelper::getAuthUser());
     $smarty->assign('WEB_COOKIE_AUTH_KEY', AuthHelper::$cookieAuthKey);
 }
Example #5
0
 public function beforeRoute($f3)
 {
     parent::beforeRoute($f3);
     // 由于我们使用 GET 来传递 session id,出于安全性考虑,我们需要检查来源 IP
     $userSessionIP = $f3->get('SESSION[user_session_ip]');
     if (empty($userSessionIP)) {
         $f3->set('SESSION[user_session_ip]', $f3->get('IP'));
     } else {
         if ($userSessionIP !== $f3->get('IP')) {
             // IP 非法,清空当前 session 数据
             $f3->clear('SESSION');
             session_destroy();
             session_write_close();
         }
     }
     // 用户没有登陆,让用户去登陆
     if (!AuthHelper::isAuthUser()) {
         // 如果已经记录了一个回跳 URL ,则不要再覆盖这个记录了
         RouteHelper::reRoute($this, '/User/Login', !RouteHelper::hasRememberUrl());
     }
 }