记录一下discuz3.3+微信OAuth2.0网页授权过程



    尝试实现以下流程:点击微信菜单,在微信浏览器中打开网页进行编辑操作,并以微信中的用户信息编辑上传内容。

    参考微信的OAuth2.0网页授权流程:https://mp.weixin.qq.com/wiki


    首先进行网页授权,进入微信平台,“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。

第一步:用户同意授权,获取code

    在网站根目录建立oauth2.php文件:

<?php

	if (isset($_GET['code'])){
		echo $_GET['code'];
	}else{
		echo "NO CODE";
	}

?>

    在微信中构造并打开以下连接,appid***替换为自己的appid,url***替换为自己的域名:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid***&redirect_uri=http://url***/oauth2.php&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect

    打开以上连接后,得到code:



第二步:通过code换取网页授权access_token

    第一步成功取得code后,构造以下连接,其中,红色部分需要替换为自己的对应值:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid***&secret=secret***&code=code***&grant_type=authorization_code

    这连接直接在pc浏览器中打开,得到以下结果:

{

"access_token":"UotmqEAKaimK3BKz_d5Hx1Fwygj26Djq9gA6q0fgSw3r9OFJBaxZ1znjipDxEbFf9r7OMDg05IW***",

"expires_in":7200,

"refresh_token":"owILj4XC9GJ0-Lt8RHG5K-T05CjjoFDPWSV_WGbOv03KYWymL6xWN7kkRZenaFUqvhmJhxgvd6epTFjhWJflV***",

"openid":"olXyUwaWwouEo3_UrJpCQ8***",

"scope":"snsapi_userinfo"

}


第三步:刷新access_token(如果需要)

替换以下连接中的红色部分,在pc浏览器中打开:

https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=appid***&grant_type=refresh_token&refresh_token=refresh_token***

得到以下内容:

{

"openid":"olXyUwaWwouEo3_U***",

"access_token":"UotmqEAKaimK3BKz_d5Hx1Fwygj26Djq9gA6q0fgSw3r9OFJBaxZ1znjipDxEbFf9r7***",

"expires_in":7200,

"refresh_token":"owILj4XC9GJ0-Lt8RHG5K-T05CjjoFDPWSV_WGbOv03KYWymL6x***",

"scope":"snsapi_base,jsapi_record,jsapi_location,snsapi_userinfo,"

}


第四步:拉取用户信息(需scope为 snsapi_userinfo)

根据上面得到的access_token以及openid,替换以下连接中的红色部分,在pc浏览器中打开:

https://api.weixin.qq.com/sns/userinfo?access_token=access_token***&openid=openid***

返回以下结果:

{
"openid":"olXyUwaW***",
"nickname":"***",
"sex":*,
"language":"zh_CN",
"city":"",
"province":"",
"country":"CN",
"headimgurl":"http:\/\/wx.qlogo.cn\/mmopen\/SXSQqYR286eWx***",
"privilege":[]
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值