header = [ "Access-Token" => $this->getAccessToken() ]; return $this; } /** * 设置配置信息 * @param array $config * @return $this */ public function config(array $config = []): static { $this->config = $config; return $this; } public function getAccessToken() { $accessToken = Cache::get($this->getTokenPrefix()); if (!empty($accessToken)) return $accessToken; $refreshToken = Cache::get($this->getRefreshPrefix()); $result = (new AccessToken)->config($this->config)->refreshAccessToken($refreshToken,$this->config['prefix']); if (!is_array($result)) return "获取Token失败\n"; Cache::set($this->getTokenPrefix(),$result['access_token'],$result['expires_in']); Cache::set($this->getRefreshPrefix(),$result['refresh_token'],$result['refresh_token_expires_in']); return $result['access_token']; } /** * @param string $url * @param array $data * @param string $field * @return array */ public function curlPostApi(string $url = "", array $data = [], string $field = "data"): array { $result = Http::asJson()->withHeaders($this->header)->post($this->gateway.$url,$data)->array(); if (isset($result['code']) && $result['code'] <> 0) return ['msg' => $result['message']]; if(!empty($result[$field])) { return $result[$field]; } return []; } /** * @param string $url * @param array $data * @param string $field * @return array */ public function curlGetApi(string $url = "", array $data = [], string $field = "data"): array { $result = Http::asJson()->withHeaders($this->header)->get($this->gateway.$url,$data)->array(); if (isset($result['code']) && $result['code'] <> 0) return ['msg' => $result['message']]; if(!empty($result[$field])) { return $result[$field]; } return []; } /** * @return string */ protected function getTokenPrefix(): string { return str_replace("[appid]",$this->config['appid'],$this->tokenPrefix); } /** * @return string */ protected function getRefreshPrefix(): string { return str_replace("[appid]",$this->config['appid'],$this->refreshPrefix); } }