[关闭]
@lzb1096101803 2016-03-19T23:39:11.000000Z 字数 785 阅读 483

微信公众号绑定账号

电话面试



我的:
1. 用户点击菜单
2. 被拦截器拦截,
3. 拦截器获取session的当前userId和当前openId
4. 验证userId是否存在,如存在说明已经绑定过了,跳转到真正的菜单,终止,否则跳到下一步
5. 如果openId不存在,则请求微信得到openId,放到session中,
(PS:每次都要获取openId,要么从session中,要么从微信)
6. 检查数据库的openId是否存在,如果存在拿出userId,将userId放入session,跳转到真正的菜单,如果不存在则跳转到登录页面
(PS:有openId不代表就是绑定了,需要到数据库验证,可能是因为第二次菜单点击得到第一次点击的)
7. 登录后根据session中的openId和userId进行绑定,如果session中不存在还要从微信获取进行绑定,并将userId放到session中


宗坚的。
1. 用户点击菜单
2. 被拦截器拦截,
3. 拦截器获取session的当前userId和当前openId
4. 如果openId不存在(微信的接口调用次数是有限的),则应该像wechat接口请求授权,参数可以选择默认授权,wechat响应返回openId,同时将openId放入session中,设置当前openId,用于登录用绑定用和减少调用次数。
5. 验证userId是否存在,如userId存在说明已经绑定过了(其实session中有userId记录,数据库中也一定有记录),跳转至真正的菜单(数据库存的是userid与openid嘛,openid相当于key,找userid这个value)
6. 如果数据库中openId不存在,说明未绑定,跳转到绑定页面,即登录页面。否则是绑定过的设置session中的userId为当前userId
7. 登录成功后,将openId放到session中,然后存放到数据库

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注