private function getAccessToken() { // access_token 应该全局存储与更新,以下代码以写入到文件中做示例 $redis = PtRedis::obj(); $data = $redis->get($this->access_path); if ($data) { $data = json_decode($data); } if (!$data || isset($data->expire_time) && $data->expire_time < time()) { // 如果是企业号用以下URL获取access_token // $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appId}&secret={$this->appSecret}"; $res = json_decode($this->httpGet($url)); $access_token = $res->access_token; if ($access_token) { $res->expire_time = time() + 7000; $res->access_token = $access_token; $redis->set($this->access_path, json_encode($res)); } } else { $access_token = $data->access_token; } return $access_token; }
static function _redis($key = "default") { return PtRedis::obj($key); }