admin管理员组文章数量:1531793
2023年12月23日发(作者:)
微信公众平台开发
实例教程
$OAuthurl="/sns/oauth2/access_token?appid=".$appid."&secret=".$secret."&code=".$code."&grant_type=authorization_code";
$OAuthinfo=json_decode(getdata($OAuthurl),true);
$access_token=$OAuthinfo['access_token'];
$openid=$OAuthinfo['openid'];
将接口地址中的appid、secret和code参数替换,并通过getdata()函数(该函数在wei_文件中,包含后可直接被使用)请求该接口地址,并将返回的JSON数据通过json_decode()函数处理为数组,之后单独输出access_token和openid。
访问该程序的网址为:
/connect/oauth2/authorize?appid=wx78478e595939c538&redirect_uri=
/&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect
appid为公众号的appid,且需与上面$appid的值相同,否则会提示{"errcode":40029,"errmsg":
"invalid code, hints: [ req_id: z3H9UA0717ns83 ]"}这样的错误信息,其代表的意思是不合法的oauth_code。
为该程序文件。
运行效果如图7-4所示。
图7-4 以scope为snsapi_base发起的网页授权获取access_token及openid
7.1.3 scope为snsapi_userinfo时调用实例
(1)获取code。
在确保微信公众账号拥有授权作用域scope参数为snsapi_userinfo的前提下,引导微信用户打开如下格式页面。
/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect
若提示“该链接无法访问”,请检查参数是否填写错误,以及是否拥有scope参数对应的授权作用域权限。
114
第7章
微信公众平台高级接口实例讲解
该链接格式与以snsapi_userinfo为scope发起的网页授权仅仅是scope不同,其余相同。
调用参数说明,如表7-4所示。
表7-4 scope为snsapi_userinfo时接口调用参数说明
参数 是否必需 说明
appid 是 公众号的唯一标识
redirect_uri 是 授权后重定向的回调链接地址,请使用urlencode对链接进行处理
response_type 是 返回类型,请填写code
应用授权作用域,snsapi_userinfo(弹出授权页面,可通过openidscope 是
拿到昵称、性别、所在地。并且即使在未关注的情况下,只要用户授权,也能获取其信息)
state 否
重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
#wechat_redirect是 无论是直接打开还是做页面302重定向时,都必须带此参数
(2)通过code换取access_token以及OpenID。
该步骤与scope为snsapi_base发起的网页授权流程一致,参考其调用方法即可。
(3)刷新access_token(如果需要)。
由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新。refresh_token有效期为30天,失效之后需要用户重新授权。
refresh_token参数在(2)中与access_token和OpenID一同获取,获取代码为$refresh_token=
$OAuthinfo['refresh_token'];。
接口调用地址:/sns/oauth2/refresh_token?appid=APPID&grant_
type=refresh_token&refresh_token=REFRESH_TOKEN
调用参数说明,如表7-5所示。
表7-5 刷新access_token接口调用参数说明
参数 是否必需 说明
appid 是 公众号的唯一标识
grant_type 是 填写为refresh_token
refresh_token 是 填写通过access_token获取到的refresh_token参数
返回说明:
正常情况下,微信会返回JSON数据包给公众号:
{ "access_token":"ACCESS_TOKEN",
"expires_in":7200,
115
版权声明:本文标题:7.1.3 scope 为snsapi_userinfo 时调用实例[共6页] 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1703344663a50750.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论