时间:2021-9-9 作者:admin 分类: api接口文档
首先,要用户是登陆状态,登陆状态需要header里携带相关参数,请参考用户中心API请求文档(http://www.zoodt.cn/post-6.html)
要求参数:r_url(如果库里不存在此人的openid,请求结束后,服务返回一个html页面,页面上有个按钮
按钮[授权成功,点击返回]的链接指向就是这个参数值,该参数是必须的,
该_url的值最好是为发出 /v1/ceneter/open_id_app.htm ajax请求的页面地址,请使用相对地址,该参数过长会发生错误!请尽量控制在15个字符内,且不要有特殊字符)
返回参数说明:
如果库里已经有(也就是曾经获取过该用户的在该微信应用id下的openid),
将直接返回(data.result.open_id),如果没有,将返回一个url(data.result.url)
客户端应该使用window.location 方式去请求这个Url,
当浏览器跳转几次后返回一段html代码生成的页面。
此时页面上有一个返回的铵钮,该按钮的指向是r_url参数的值。
具体如下图
关于服务器返回的html代码:
关于服务器返回的HTML代码页面
下面是一个简单的前端demo:
额外说明,关于r_url的值为发出 GET /v1/center/open_id_app.htm 请求的页面的建议,当请求 /v1/center/open_id_app.htm 页面时,库里没有的话客户端要请求服务器返回的Url,而当服务器从微信服务器获取到openid时,服务器这时会把从微信获取到的Openid储存到库里了。然后服务器返回一页面,页面上有个按钮[授权成功,点击返回],链接指向是发出 /v1/center/open_id.htm 这时这页面再去请求这个url的时候,服务器就会返回该用户的openid了,其实这是个递归思想