PHP-微信公众账号中的一键绑定该怎么设计
招商银行的一卡通绑定是通过给公众平台发送一条消息,然后获取用户Openid,根据Openid获取用户信息,然后绑定用户账号(详见微信公众账号“招商银行”),微信给出的例子也是这个,但是我发现有些公众账号点击“绑定账号”之后是直接跳到到一个wap站的,详细可参考“ 北京交警”业务办理->我的违法,这是怎么做到的呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一、没有记错的话,微信自定义菜单有openid的返回值:
参见微信开发文档:自定义菜单事件推送
二、或者通过Oauth网页授权获得Openid:
Oauth接口只有认证服务号才能申请,所以没作了解,可参见方倍的博客
OAuth2.0网页授权
微信公众平台OAuth2.0授权详细步骤如下:
1. 用户关注微信公众账号。
2. 微信公众账号提供用户请求授权页面URL。
3. 用户点击授权页面URL,将向服务器发起请求
4. 服务器询问用户是否同意授权给微信公众账号(scope为snsapi_base时无此步骤)
5. 用户同意(scope为snsapi_base时无此步骤)
6. 服务器将CODE通过回调传给微信公众账号
7. 微信公众账号获得CODE
8. 微信公众账号通过CODE向服务器请求Access Token
9. 服务器返回Access Token和OpenID给微信公众账号
10. 微信公众账号通过Access Token向服务器请求用户信息(scope为snsapi_base时无此步骤)
11. 服务器将用户信息回送给微信公众账号(scope为snsapi_base时无此步骤)
举个例子:
当你关注A微信公众号的时候呢,微信会自动生成一个标识符,来“标明”你已经收听了A的公众号,这个标识符是唯一的,通过接口文件是可以获取到你的这个唯一的标识符的,然后A只要在会员信息中加入你这个标识符,以后就直接根据你的这个标识符来获取你的会员信息
大致原理应该是这样
以上是个人见解!
@Jeassin 已经基本把原理解释清楚了,这里只做一点补充。
因为用OAuth2.0授权跳转可以获得用户的openid,昵称等信息,只要把自定义菜单所有链接均改为先通过微信的OAuth2.0授权页面,再跳转到功能页面,即可以识别当前的用户。并且,微信授权页面只会在第一次出现,而后面对于用户来说是无感的。
以上。