«
获取openid说明

时间:2021-9-9    作者:admin    分类: api接口文档


首先,要用户是登陆状态,登陆状态需要header里携带相关参数,请参考用户中心API请求文档(http://www.zoodt.cn/post-6.html)

这里需要特别说明的是,header里携带的app-id的值,一定要确保我这边已经有的。目前只有 hongxing 和 huozhanbang 这两个id可以获取openid

GET /v1/center/open_id_app.htm (注意,只能前端请求,不支持后端)
    要求参数: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

关于服务器返回的HTML代码页面
html

下面是一个简单的前端demo:

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了,其实这是个递归思想