/**
* 微信通过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);
}