/** * 设置用户 AccessToken */ public function setAccessToken(AccessToken $accessToken) { if (!$accessToken->isValid()) { $accessToken->refresh(); } $this->accessToken = $accessToken; }
/** * 构造方法 */ public function __construct(AccessToken $accessToken) { if (!$accessToken->isValid()) { $accessToken->refresh(); } $request = Http::get(self::USERINFO_URL, array('query' => array('access_token' => $accessToken['access_token'], 'openid' => $accessToken['openid']))); $response = $request->json(); if (array_key_exists('errcode', $response) && array_key_exists('errmsg', $response)) { throw new \Exception($response['errcode'] . ': ' . $response['errmsg']); } parent::__construct($response); }
/** * 构造方法 */ public function __construct(AccessToken $accessToken) { if (!$accessToken->isValid()) { $accessToken->refresh(); } $request = Http::get(self::USERINFO_URL, array('query' => array('access_token' => $accessToken['access_token'], 'openid' => $accessToken['openid']))); $response = $request->json(); if (array_key_exists('errcode', $response) && array_key_exists('errmsg', $response)) { throw new \Exception($response['errcode'] . ': ' . $response['errmsg']); } $required = array('openid', 'nickname', 'sex', 'language', 'city', 'province', 'country', 'headimgurl'); $defined = array_merge($required, array('privilege', 'unionid')); $validator = new OptionValidator(); $validator->setDefined($defined)->setRequired($required); $validated = $validator->validate($response); parent::__construct($validated); }