/** * 微信通过code换取网页授权access_token web与app都是用这个 * * @param string $app_id * 公众号的唯一标识 * @param string $app_secret * 公众号的appsecret * @param string $code * 获取的code参数 * @return array 包含以下键的关联数组: * - access_token: string 访问令牌 * - expires_in: int 令牌过期时间(秒) * - refresh_token: string 刷新令牌 * - openid: string 用户OpenID * - scope: string 授权范围 拉取用户信息(需scope为 snsapi_userinfo) * - is_snapshotuser: int 是否为快照用户(1 表示是,0 表示否) * - unionid: string 用户UnionID(如果有) * @throws Exception 如果获取令牌失败,则抛出异常 */ public function wxOauth2($app_id, $app_secret, $code) { // 发送请求,获取用户openid和access_token $logsList = httpRequest('https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $app_id . '&secret=' . $app_secret . '&code=' . $code . '&grant_type=authorization_code', 'get'); return json_decode($logsList); } /** * 拉取用户信息(需scope为 snsapi_userinfo) web与app都是用这个 * @param string $access_token * @param string $openid * @return mixed */ public function wxUserInfo($access_token, $openid) { // 获取当前用户信息 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语 $user_info = httpRequest('https://api.weixin.qq.com/sns/userinfo?access_token=' .$access_token. '&openid=' .$openid. '&lang=zh_CN', 'get'); return json_decode($user_info); } /** * * @param string $appid 公众号的唯一标识 * @param string $secret 公众号的appsecret * @param string $js_code 前端传来的code * @return array 包含以下键的关联数组: * - errmsg: string 错误信息 * - errcode: int 错误码 * - session_key: string 会话密钥 * - openid: string 用户OpenID * - unionid: string 用户UnionID(如果有) * @throws Exception 如果获取令牌失败,则抛出异常 */ public function weixin_s($appid,$secret,$js_code) { $logsList = httpRequest('https://api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret=' . $secret . '&js_code=' . $js_code . '&grant_type=authorization_code', 'get'); return json_decode($logsList); }