网站设计
来源:028微信开发 | 2016-05-04
对于经常做web开发的人员来说,对Session肯定是不陌生的。Session作为“会话控制”,指的是一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。不过在微信开发中Session的处理较web开发还是有一定差异的!
在微信窗口,输入的信息有限,比如:在进行用户绑定时,需要输入与用户相关的用户名、密码、姓名、电话号码等信息,在服务端验证通过后,才可将系统用户与微信用户绑定。因此,经常需要将一些信息分多次请求。而在绑定微信用户之后,可能就有一定的查积分、消费记录等功能权限。
当微信客户端无法缓存信息,而且输入信息有限,需要进行多次请求,在服务端保存当前会话状态,这时,就需要用到Session。
1 通用Session处理机制的创建
1.1 自定义Session
自定义Session是用来存储会话片段以及相关数据的。具体代码如下:
1.2 操作类型
记录具体的操作类型,标识当前会话的具体操作:
1.3 操作过程枚举
操作过程枚举是用来标识当前操作,处于哪一个阶段,不同阶段做不同的处理。
1.4 Session缓存项
Session缓存项记录了操作类型、操作步骤以及会话对象。为了便于进行Session管理,还增加了最后访问时间,是否自动清除标识。
2 消息中的Session处理
2.1 增加缓存项数据对象
增加缓存项数据对象将记录用户在会话过程中,录入的相关信息,同时也将作为业务处理数据提供对象。
2.2 认证处理过程
1)开始进入认证,根据认证关键字进行标识,启动会话,并缓存相关数据;
2)提示录入个人账号信息;
3)微信用户录入个人账号,服务端记录账号信息,并提示录入员工卡号;
4)微信用户录入卡号信息,服务端记录卡号信息,并调用具体的认证逻辑;
5)用户认证通过,绑定微信OpenId,提示成功绑定信息,并清除会话。
在认证过程中,需要对用户录入信息进行合法性验证,而且在会话过程中,支持用户退出当前操作。
2.3 清理Session
在认证过程中,用户可以通过命令,强制退出当前操作,在退出当前操作时,需要清理会话信息。
3 绑定微信账户
用户认证是一个身份认证过程,也是一个用户绑定过程。用户认证通过,并绑定微信OpenId,通过OpenId就可以查询通讯录、个人积分以及消费记录等