1、要获取openid,必须要通过OAuth20来完成网页授权才能完成的,通过OAuth20来完成网页授权后,在经过用户许可后,就可以通过授权页面,获得用户的openid
2、如何通过OAuth20网页授权呢?要先通过申请高级接口功能
3、申请通过后,还要做一个授权页面,引导用户授权就能获得openid!
有两种方法可以获取微信用户的OpenID:
回复短信,在链接的OpenID用户,然后用户通过链接点击短信的最后一页,所以做好用户体验是非常糟糕的,每个菜单就是这么干的。
用一个调用高级接口的服务号
回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢 !
一、通过全局Access Token获取用户基本信息
1 用户关注以及回复消息的时候,均可以获得用户的OpenID
<xml>
<ToUserName><![CDATA[gh_b629c48b653e]]></ToUserName>
<FromUserName><![CDATA[ollB4jv7LA3tydjviJp5V9qTU_kA]]></FromUserName>
<CreateTime>1372307736</CreateTime>
<MsgType><![CDATA[event]]></MsgType>
<Event><![CDATA[subscribe]]></Event>
<EventKey><![CDATA[]]></EventKey>
</xml>
其中的FromUserName就是OpenID
2 然后使用access_token接口,请求获得全局Access Token
>
返回结果:
{
"access_token": "NU7Kr6v9L9TQaqm5NE3OTPctTZx797Wxw4Snd2WL2HHBqLCiXlDVOw2l-Se0I-WmOLLniAYLAwzhbYhXNjbLc_KAA092cxkmpj5FpuqNO0IL7bB0Exz5s5qC9Umypy-rz2y441W9qgfnmNtIZWSjSQ",
"expires_in": 7200
}
3 再使用全局ACCESS_TOKEN获取OpenID的详细信息
>
返回如下:
{
"subscribe": 1,
"openid": "oLVPpjqs2BhvzwPj5A-vTYAX4GLc",
"nickname": "方倍",
"sex": 1,
"language": "zh_CN",
"city": "深圳",
"province": "广东",
"country": "中国",
"headimgurl": ">
"subscribe_time": 1386160805
}
至此,获得用户的基本信息。
二、通过OAuth20方式d出授权页面获得用户基本信息
1 首先配置回调域名
2 构造请求url如下:
>
页面URL中的
scope=snsapi_userinfo 表示应用授权作用域为请求用户信息
★ 如果使用别人的AppID和AppSecret,那么获得的OpenID是那个有高级接口权限的服务号的,这里可以通过消息回复,获取本公众账号下的OpenID,带入回调中,与另一个OpenID进行关联
>
将该链接回复给关注用户,用户点击后,d出应用授权界面
3 回调页面得到链接如下,回调url中将包含参数code
>
或者 >
4 再使用code换取oauth2的授权access_token
url如下:
>
获得授权Access Token:
{
"access_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5AI1bw2uqN--2jXoBLIM5d6L9RImvm8Vg8cBAiLpWA8Vw",
"expires_in": 7200,
"refresh_token": "OezXcEiiBSKSxW0eoylIeAsR0GmYd1awCffdHgb4fhS_KKf2CotGj2cBNUKQQvj-G0ZWEE5-uBjBz941EOPqDQy5sS_GCs2z40dnvU99Y5CZPAwZksiuz_6x_TfkLoXLU7kdKM2232WDXB3Msuzq1A",
"openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc",
"scope": "snsapi_userinfo,"
}
5 再使用授权Access Token获取用户信息
url如下:
>
返回如下
{
"openid": "oLVPpjqs9BhvzwPj5A-vTYAX3GLc",
"nickname": "方倍",
"sex": 1,
"language": "zh_CN",
"city": "Shenzhen",
"province": "Guangdong",
"country": "CN",
"headimgurl": ">
"privilege": []
目前微信服务号在网页获取微信用户openid就这两种方法,订阅号只能通过图文或文本消息打开网页,自己传用户的openid。
1在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo)
2通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid
首先你的网站入口必须是微信服务号(开通认证、拥有获取用户openid权限;订阅号是不行的)。
网页通过微信的Oauth2认证链接。
然后通过服务号菜单链接进入网站
自己根据微信提供的oauth2接口文档,编写oauth2php内容,(网上有相关官方SDK)
按下面的步骤:
1获取用户openid
2获取accesson_token
3获取用户信息
4授权注册用户,若已存在该用户则直接进入网站。
以上就是关于微信内置浏览器如何获得 openid全部的内容,包括:微信内置浏览器如何获得 openid、如何获取微信用户openid、微信公众平台的网页跳转时如何获取账号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)