/**
  * 获得用户app key,若未指定$user_id,则取当前用户
  * 
  * @param 	$user_id 	string
  * @return 	string
  */
 public static function get_appkey($user_id = null)
 {
     if ($user_id) {
         $business_user = BusinessUser::find($user_id);
     } else {
         $business_user = BusinessUser::find(Sentry::getUser()->user_id);
     }
     if (!isset($business_user)) {
         throw new Exception('非企业用户', 31);
     }
     return $business_user->app_key;
 }
 public static function token()
 {
     if (Cache::get('app_token') != null) {
         return Cache::get('app_token');
     }
     //获取token的链接
     $url = Config::get('domain.server') . '/token';
     $business_user = BusinessUser::find(Sentry::getUser()->user_id);
     //获取token的参数
     $appkey = $business_user->app_key;
     $secretkey = $business_user->app_secret;
     $parm = 'appkey=' . urlencode($appkey) . '&secretkey=' . urlencode($secretkey);
     // dd($secretkey);
     $token = json_decode(CurlController::post($url, $parm), true);
     if ($token['errCode'] != 0) {
         Log::info($token);
         return Response::json(array('errCode' => 1, 'message' => 'token获取失败'));
     }
     Cache::put('app_token', $token['token'], 100);
     return $token['token'];
 }
 public function agency()
 {
     if (!Session::has('violations')) {
         return Redirect::to('/serve-center/agency/pages/search_violation');
     }
     $violations = Session::get('violations');
     $sign = Input::get('sign');
     if (!array_key_exists(Input::get('sign'), $violations)) {
         return Response::make('参数错误');
     }
     $user = Sentry::getUser();
     $agency_user_attr = '';
     if ($user->is_common_user()) {
         $agency_user_attr = $user->login_account;
     } else {
         if ($user->is_business_user()) {
             $agency_user_attr = BusinessUser::find($user->user_id)->business_name;
         }
     }
     return View::make('pages.serve-center.business.agency', ['sign' => $sign, 'agency_user_attr' => $agency_user_attr, 'agency_info' => $violations[$sign]['info']]);
 }
 /**
  * 获得access token
  *
  * @return string
  */
 public static function getAccessToken($user = null)
 {
     /*
        未设置$user,默认为普通用户,
        token均从缓存中获取, 从缓存中获取失败,则从远程服务器中获取
        对于普通用户,app_key和app_secret用通用的, token获取的key为:token
        对于企业用户,app_key和app_secret每个用户均不相同, token获取的key为:'token_' + user_id,比如 'token_yhxx1231231231231231231231'
     */
     if ($user == null || $user->is_common_user()) {
         // 从本地缓存中获取token
         $token = static::getAccessTokenFromCache();
         // 从缓存中获取失败,则从远程服务器获取
         if (empty($token)) {
             $cheshang_config = Config::get('domain');
             // 从远程服务器获取
             $token = static::getAccessTokenFromRemote($cheshang_config['app_key'], $cheshang_config['app_secret']);
             // 保存到缓存中并设置过期时间
             static::putAccessTokenIntoCache($token);
         }
         return $token;
         // 企业用户
     } else {
         if ($user->is_business_user()) {
             // 从本地缓存中获取token
             $token = static::getAccessTokenFromCache($user->user_id);
             // 从缓存中获取失败,则从远程服务器中获取
             if (empty($token)) {
                 // 获取企业用户信息
                 $user_bussiness_info = BusinessUser::find($user->user_id);
                 // 从远程服务器获取
                 $token = static::getAccessTokenFromRemote($user_bussiness_info->app_key, $user_bussiness_info->app_secret);
                 static::putAccessTokenIntoCache($token, $user->user_id);
             }
             return $token;
         }
     }
     return null;
 }
 public function displayCompanyRegisterInfo()
 {
     $display_code = Input::get('display_code');
     $user = Sentry::findUserById(Sentry::getUser()->user_id);
     if ($user->checkResetPasswordCode($display_code)) {
         $business_user = BusinessUser::find($user->user_id);
         $app_key = $business_user->app_key;
         $app_secret = $business_user->app_secret;
         return Response::json(array('errCode' => 0, 'message' => '显示开发者信息', 'app_key' => $app_key, 'app_secret' => $app_secret));
     } else {
         return Response::json(array('errCode' => 21, 'message' => '验证码不正确'));
     }
 }