微信公众号用户与网站用户的绑定方案-微信开发

时间: 2020-12-25 15:46:32     来源: 南京上至品科技2641编辑:上至品来源:本站原创

微信公众号用户与网站用户的绑定方案-微信开发

  如今许多网站都已经建立了一套完备的用户账号系统,基于这套系统,再做其他应用的用户扩展就特别很是方便。例如,有了微软的outlook账户,就可以登录win8,可以登录微软的邮箱,还可以登录skype。同样地,一个Apple ID可以享受苹果的所有服务。正所谓,一个账号,处处使用。

  对于企业,可能会有产品线通常有网站,app,微信公众号等。同一各产品线的账号系统,实现一个账号处处使用的目标是特别很是有需要的。网站和app使用统一个账号,不必要做任何多余的工作,客户只要有效户名密码即可登录。对于微信公众号,因为它是基于微信公众平台的一个应用,必要遵守平台的规则,所以必要做一些额外的工作才能达到账号互通的目标。
  接下来我们就来讨论一下,如何做到微信公众号用户与网站用户的账号系统无缝对接。

  当用户关注微信公众号后,会有一些交互,交互过程中可能必要获取到用户的身份信息(对应到网站的账户信息),例如在公众号中下单,查询订单等操作。那么如今题目来了:对于统一个用户,我们如何建立微信公众号用户(openid)与网站用户(userid)之间的对应关系。这个过程我们称之为绑定。

微信公众号用户与网站用户的绑定方案-微信开发

  微信账号绑定
  为了简化讨论,我总结了如许两个场景:
  一、用户已注册成为我们的网站用户,但还未关注我们的微信公众号;
  二、用户未注册,但已关注我们的微信公众号。
  对于以上两种情况,下面分别讨论。
  场景一
  用户已注册成为我们的网站用户,但还未关注我们的微信公众号。如何方便用户关注公众号,同时又能把用户和微信公众号绑定在一路呢?很天然地就可以想到二维码这个入口。
  最近几年,二维码的应用分外广泛。微信对二维码的推广及应用可以说是如鱼得水,微信二维码付出,微信二维码登录,微信二维码咭片等等。可以说,二维码已经成为O2O中连接线上线下的紧张纽带。小马哥也称"二维码是线上线下的一个关键入口"。

  在这里百度SEO,必要用户在网站上先登录,然后在合适的地方给出一个绑定入口,比如在小我设置里。绑定流程如下:

微信公众号用户与网站用户的绑定方案-微信开发

  微信账号绑定流程
  这里必要用到微信的二维码生成功能:http://mp.weixin.qq8533/wiki/18/28fc21e7ed87bec960651f0ce873ef8a.html
  关于微信二维码,官方文档中如许说:
  目前有2种类型的二维码,分别是一时二维码和永世二维码,前者有过期时间,有用期30天(2592000秒),但能够生成较多数量,后者无过期时间,数量较少(目前参数只支撑1--100000,即10万个)。两种二维码分别适用于帐号绑定、用户来源统计等场景。
  显然,我们使用一时二维码比较合适。每当用户刷新页面时,都可以生成一次。
  因为二维码里可以带有场景值(scene_id),当用户扫描带有场景值的二维码后,微佩服务器会把场景值推送给我们本身的服务器,我们拿到场景值后,就可以做验证和绑定逻辑。细致:生成二维码必要认证后的服务号。
  一次完备的绑定流程应该是如许的:
  ①用户登录网页,点击“绑定微信账户”;
  ②后台使用微信接口,生成二维码链接返回给前端表现,并建立场景值A与用户的对应关系;
  ③用户扫描二维码,并点击关注微信公众号(如果已关注,直接跳到④);
  ④后台接收微佩服务器推送的场景值A;
  ⑤后台根据场景值A,查询到对应的用户ID(依靠于②中沈阳塑料托盘建立的对应关系);
  ⑥建立用户userid与微名誉户openid的对应关系;
  ⑦给用户的微信客户端推送“绑定成功”的提醒;
  ⑧关照前台页面,绑定已完成,刷新页面,并返回一些微信账户信息。完成绑定。
  其中,②中,“建立场景值A与用户之间的对应关系”,由于用户已经登录,所以用户点击“绑定微信账户”时,我们可以在后台分配一个一时场景值A与用户ID之间的对于关系。对于用户量不大的网站,可以直接使用php中的apc来缓存,并设置一个过期时间(与一时二维码过期时间设置成一样即可)。不要使用session来存储这种对应关系,由于④中是微信的推送事件,是不带session信息的,可以使用redis这类缓存或DB来存储。另,这里要使用一时二维码杭州注册公司,数量上没有限定,只偶然间限定,前台准时刷新即可。
  ⑧中,由于http没有推送机制,所以最简单的方法就是轮询去查询,是否已经完成绑定,完成绑定后再刷新页面。
  完成绑定后,用户再跟我们的微信公众号交互时,根据openid可以找到对应的userid,即完成身份识别。对于之前提到的下单,查询订单,都是可以实现的。
  整个绑定过程并不复杂,实现起来也没有太大的技术难度,最关键的是思路。
  上述流程是用户已经在网页端登录了,也就是说已经注册用户。对于没有登录的情况,我们也可以做,在登录页面生成一个二维码,让用户用微信扫一扫。如果用户已经注册,则可以主动登录,并完成网站账号和微信账号的绑定;如果用户没有注册,则网页跳转到绑定账号页面,只要用户输入邮箱密码快速注册,同时也完成了网站账号和微名誉户的绑定。实现技术方案跟上述类似。
  场景二
  场景二,对于用户来说操作略微复杂,由于它必要用户在微信客户端的网页中完成登录/注册。所以,如果注册过程太过复杂繁琐,不建议使用。

  流程:

微信公众号用户与网站用户的绑定方案-微信开发

  用户绑定账户流程
  上述绑定流程集成了注册的过程,所以看起来比较复杂。实现起来也没有太大的难度,我们重点关注一下安全性方面的题目,由于绑定账户涉及到用户的信息安全,考虑两个题目:
  1、如何防止链接被伪造
  登录/注册的链接必要确保是我们本身的服务器生成的,其他人无法伪造。可以参考微信的验证服务器地址的有用性:
  http://mp.weixin.qq8533/wiki/17/2d4265491f12608cd170a95559800f2d.html。
  所以一个比较安全的登录链接可以是如许的:
  http://api.hello10108533/wechat/login.html?openid=x1&signature=x2×tamp=x3&nonce=x4&echostr&=x5

  校验签名的代码:微信公众号用户与网站用户的绑定方案-微信开发

  token值可以跟本身的微信公众号后台的同等,也可以换一个,建议换一个安全点。
  2、如何确保openid是可信的
  考虑这种场景:A用户进入登录页面,复制登录链接到欣赏器,把openid替代为B用户的openid,使用A用户的账号密码登录。如许就把A用户的userid和B用户的openid绑定在一路了,显然是不安全的。
  解决方案有许多,比如可以给openid加密,在加密方法保密的情况下,用户无法伪造加密后的openid。如果不想给openid加密,可以在生成链接时,在服务器端建立openid与签名signature的对应关系,如果用户篡改了openid就无法通过校验。
  记住,永久不要轻信客户端传过来的信息。
  扩展应用
  完成绑定后,我们可以做一些简单的应用。比如,公司必要举办一个线下路演运动,该运动必要报名才能参加,并且必要签到。

  这是一个典型的可以用微信实现的O2O例子。流程如下:

微信公众号用户与网站用户的绑定方案-微信开发

  线下路演签到流程
  其中,“绑定用户子流程”就是场景二中的流程。报名的交互在这里不再累述,每个营业都不一样。
  对于一个已经完成绑定的用户,他参加一个运动,必要做的就是通过微信报名,然后扫描二维码签到,体验相称流畅。
淄博网站建设
本站文章均为上至品网站建设摘自权威资料,书籍,或网络原创文章,如有版权纠纷或者违规问题,请即刻联系我们删除,我们欢迎您分享,引用和转载,但谢绝直接搬砖和抄袭!感谢...
我们猜你喜欢
多一份免费策划方案,总有益处。

请直接添加技术总监微信联系咨询

二、禁止点击鼠标右键2: