WebsiteDdesign

网站设计

028微信开发 > 资讯 > 028微信开发:Session如何处理
联系我们

028微信开发:Session如何处理

来源:028微信开发 | 2016-05-04

对于经常做web开发的人员来说,对Session肯定是不陌生的。Session作为“会话控制”,指的是一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。不过在微信开发中Session的处理较web开发还是有一定差异的!

 

在微信窗口,输入的信息有限,比如:在进行用户绑定时,需要输入与用户相关的用户名、密码、姓名、电话号码等信息,在服务端验证通过后,才可将系统用户与微信用户绑定。因此,经常需要将一些信息分多次请求。而在绑定微信用户之后,可能就有一定的查积分、消费记录等功能权限。

 

当微信客户端无法缓存信息,而且输入信息有限,需要进行多次请求,在服务端保存当前会话状态,这时,就需要用到Session。

 

1   通用Session处理机制的创建

1.1  自定义Session

自定义Session是用来存储会话片段以及相关数据的。具体代码如下:

1.2  操作类型

记录具体的操作类型,标识当前会话的具体操作:

20160111115120_5066.jpg

1.3  操作过程枚举

操作过程枚举是用来标识当前操作,处于哪一个阶段,不同阶段做不同的处理。

20160111115213_9477.jpg

1.4  Session缓存项

Session缓存项记录了操作类型、操作步骤以及会话对象。为了便于进行Session管理,还增加了最后访问时间,是否自动清除标识。

20160111115259_3433.jpg


2   消息中的Session处理

2.1  增加缓存项数据对象

增加缓存项数据对象将记录用户在会话过程中,录入的相关信息,同时也将作为业务处理数据提供对象。

20160111115339_6647.jpg


2.2  认证处理过程

1)开始进入认证,根据认证关键字进行标识,启动会话,并缓存相关数据;

2)提示录入个人账号信息;

3)微信用户录入个人账号,服务端记录账号信息,并提示录入员工卡号;

4)微信用户录入卡号信息,服务端记录卡号信息,并调用具体的认证逻辑;

5)用户认证通过,绑定微信OpenId,提示成功绑定信息,并清除会话。

在认证过程中,需要对用户录入信息进行合法性验证,而且在会话过程中,支持用户退出当前操作。

20160111115421_6591.jpg

2.3  清理Session

在认证过程中,用户可以通过命令,强制退出当前操作,在退出当前操作时,需要清理会话信息。

20160111115532_1042.jpg

3   绑定微信账户

用户认证是一个身份认证过程,也是一个用户绑定过程。用户认证通过,并绑定微信OpenId,通过OpenId就可以查询通讯录、个人积分以及消费记录等