/** * 获取ticket * @param unknown $appIndex * @return unknown */ public function getJsApiTicket($appIndex = 10) { $whArr = array('mpid' => $appIndex); $rowArr = $this->where($whArr)->find(); //参数 判别token是否有效,true-有效;false-无效; $TokenFlag = true; //对数据中的缓存token处理 //数据库不存在accesstoken if ($this->where($whArr)->count() <= 0) { $TokenFlag = false; } else { $expiresDate = $rowArr['expired'] == null ? null : strtotime($rowArr['expired']); if ($expiresDate == null || $rowArr['jsapi_ticket'] == null) { $TokenFlag = false; } else { $nowtime = time(); //与当前时间差是否超过2小时-分钟计算; $minteDif = $nowtime - $expiresDate; if ($minteDif >= 0) { $TokenFlag = false; } } } if (!$TokenFlag) { //获取当前应用ID等信息 $AppKey = Platform::$AppArr[$appIndex]; $wechat = new WeChat($AppKey['AppID'], $AppKey['AppSecret']); $assesstoken = D('WxAccessToken')->getAccessToken($appIndex); $newRow = $wechat->getJsApiTicket($assesstoken); if ($newRow == null || $newRow['jsapi_ticket'] == null) { $newRow = $wechat->getJsApiTicket(); if ($newRow == null || $newRow['jsapi_ticket'] == null) { echo "获取不到jsapiticket"; exit; } } //保存数据库中 $ok = $this->where($whArr)->delete(); $newAdd['jsapi_ticket'] = $newRow['jsapi_ticket']; $newAdd['mpid'] = $appIndex; $newAdd['expired'] = date('Y-m-d H:i:s', $newRow['expire_time']); $this->add($newAdd); return $newAdd['jsapi_ticket']; } else { return $rowArr['jsapi_ticket']; } }