GetAccessTokenByCode($code); if (!$param->isResultsOK()) { throw new Exception($param->getMessage()); } $requestParam['access_token'] = $param->getData('access_token'); $requestParam['openid'] = $param->getData('openid'); $requestParam['lang'] = 'zh_CN'; $client = HttpClient::NewRequest(); $client->setUseSwoole($this->getConfig()->isUsrSwoole()); $result = $client->get($this->snsUserInfo, $requestParam); if ($result->isResultsOK()) { return $result; } $userInfo = SnsInfo::instance($result->getData()); $result->append('instance', $userInfo); return $result; } /** * @param $code * @return array|mixed|Result */ private function GetAccessTokenByCode($code) { $requestParam['appid'] = $this->config->getAppid(); $requestParam['secret'] = $this->config->getAppsecret(); $requestParam['code'] = $code; $requestParam['grant_type'] = 'authorization_code'; $client = HttpClient::NewRequest(); $client->setUseSwoole($this->getConfig()->isUsrSwoole()); return $client->get($this->oauth2, $requestParam); } /** * @param $openid * @return DAuth * @throws Exception * 获取用户信息 */ public function To_grant_authorization($openid) { $requestParam['access_token'] = $this->config->getAccessToken(); $requestParam['openid'] = $openid; $requestParam['lang'] = 'zh_CN'; $authorization = $this->request->get($this->url, $requestParam); if (!$authorization) { throw new Exception($authorization->getMessage()); } return DAuth::instance($authorization->getData()); } /** * @param $long_url * @return string * @throws Exception */ public function Turn_to_short_chain($long_url) { $token = $this->config->getAccessToken(); $requestParam['action'] = 'long2short'; $requestParam['long_url'] = $long_url; $result = $this->request->post($this->turn . $token, $requestParam); if (!$result->isResultsOK()) { throw new Exception($result->getMessage()); } return $result->getData('short_url'); } }