コード例 #1
0
ファイル: weixinUserDao.php プロジェクト: pwstrick/grape
 /**
  * 根据关注openid从微信端更新用户资料
  * @param $openid 关注者openid
  * @return bool
  */
 public function updateUserByOpenid($openid)
 {
     $openid = strval($openid);
     if (!$openid) {
         return false;
     }
     $user = $this->getRow(array('openid' => $openid));
     $weixin = InitPHP::getLibrarys('weixin');
     //始终从微信获取资料
     $accessToken = InitPHP::getMongoDao('weixinAccessToken', 'mongo/bi');
     $access_token = $accessToken->getAccessToken();
     $wxuser = [];
     if ($access_token) {
         //获取到关注用户的信息
         $wxuser = $weixin->getUserinfoByAccessToken($access_token, $openid);
         if (!$wxuser || !is_array($wxuser)) {
             $wxuser = [];
         }
     }
     $now = time();
     $tmpuser = ['openid' => $openid, 'update_time' => $now];
     $tmpuser = array_merge($wxuser, $tmpuser);
     if (!$user || !is_array($user)) {
         //未关注用户,重新生成用户记录
         $tmpuser['create_time'] = $now;
         return $this->add($tmpuser);
     }
     //已关注用户只需要更新用户资料即可
     return $this->mupdate($tmpuser, ['openid' => $openid]);
 }
コード例 #2
0
ファイル: indexController.php プロジェクト: pwstrick/grape
 /**
  * demo
  */
 public function mongo()
 {
     $userMongo = InitPHP::getMongoDao('member');
     //print_r($userMongo->getMembers()) . '<br>';
     //print_r($userMongo->getMemberCount()) . '<br>';
     print_r($userMongo->updateMember());
     var_dump($userMongo->insert(array('subscribe' => 1, 'create_time' => time())));
 }
コード例 #3
0
 /**
  * 获取微信jsapi_ticket
  * @return string | null
  */
 public function getJsapiTicket()
 {
     $accessMongo = InitPHP::getMongoDao('weixinAccessToken', 'mongo/bi');
     $access_token = $accessMongo->getAccessToken();
     if (!$access_token) {
         return null;
     }
     $res = $this->getRow(array(), array('create_time' => -1));
     if ($res && is_array($res)) {
         //记录存在,首先判断是否过期
         if (time() - $res['create_time'] > $res['expires_in'] - 1000) {
             //已经过期了,需要重新拉取
             return $this->refreshJsapiTicket($access_token);
         }
         return $res['jsapi_ticket'];
     }
     //记录不存在,从微信端拉取
     return $this->refreshJsapiTicket($access_token);
 }
コード例 #4
0
ファイル: apiController.php プロジェクト: pwstrick/grape
 /**
  * 客户端请求返回参数
  * @param int code
  * @param string $message
  * @param array $data
  */
 protected function outputCom($code, $message = '', $data = array())
 {
     $json = array('code' => $code, 'msg' => $message, 'data' => $data);
     //将返回参数保存到日志中
     $visitMongo = InitPHP::getMongoDao('visit', 'mongo/bi');
     $visitMongo->updateReturn($json, $this->log_visit_id);
     header("Content-type: application/json; charset=utf-8");
     if ($this->p('__debug')) {
         //传递debug参数 显示带换行的格式
         print_r($json);
     } else {
         echo json_encode($json);
     }
     exit;
     //$this->controller->json_return($json);
 }