微信开发获取用户授权方式

1、引导用户进入授权页面同意授权,获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

2、通过code换取网页授权access_token(与基础支持中的access_token不同)
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

3、如果需要,开发者可以刷新网页授权access_token,避免过期
https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN //返回值无subscribe,就是不知道是否关注了微信号。网页授权获取用户信息,官方用的这个方法。

https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN  //这样返回值有subscribe


/**
  * 根据access_token 和openid获得用户信息
  */
 function get_user_info($accessToken,$openid){
 	//获取用户信息
 	$url='https://api.weixin.qq.com/cgi-bin/user/info?access_token='.$accessToken.'&openid='.$openid.'&lang=zh_CN';
 	$ret=https_request($url);
 	$arr=json_decode($ret,true);
 	return $arr;
 }
 /**
  * https请求(包含Get和post)
  *
  * @param string $url
  * @param unknown $data
  */
function https_request($url, $data = NULL) {
 	if (! empty ( $url )) {
 		// 初始化一个cURL
 		$curl = curl_init ();
 		// 对提取项的设置
 		// ssl版本的设置
 		curl_setopt ( $curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1 );
 		curl_setopt ( $curl, CURLOPT_URL, $url ); // 提取url地址
 		// 在不是bae sae环境下的集成环境下 要设置一下项(不验证https证书、host)
 		curl_setopt ( $curl, CURLOPT_SSL_VERIFYPEER, FALSE );
 		curl_setopt ( $curl, CURLOPT_SSL_VERIFYHOST, FALSE );
 		// post方式传递数据
 		if (! empty ( $data )) {
 			//interface_log ( "INFO", 0, "post方式传递数据" );
 			curl_setopt ( $curl, CURLOPT_POST, 1 ); // 如果你想PHP去做一个正规的HTTP POST,设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型,多数被HTML表单使用。
 			curl_setopt ( $curl, CURLOPT_POSTFIELDS, $data ); // 传递一个作为HTTP “POST”操作的所有数据的字符串。
 		}
 		// 使用php curl获取页面内容或提交数据, 有时候希望返回的内容作为变量储存, 而不是直接输出.
 		// 这个时候就必需设置curl的CURLOPT_RETURNTRANSFER选项为1或true.
 		curl_setopt ( $curl, CURLOPT_RETURNTRANSFER, 1 );
 		$output = curl_exec ( $curl ); // 提取数据
 		curl_close ( $curl );
 		return $output;
 	} else {
 		echo "INPUT URL IS NULL";
 	}
 }




                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值