廖珊 阳利锋
摘 要:随着移动互联网的快速发展,博物馆作为一个为社会发展服务的、向公众开放的非营利性常设机构,引进先进的移动信息技术,实现在线预约参馆已成为必然的趋势。本文结合地质博物馆的实际情况,开发了基于微信公众号的预约系统,实现了门票预约、二维码票据生成、票据验证等一系列功能,提高了工作效率,降低了管理成本,改善了公众的参馆体验。
关键词:移動互联网 预约系统 二维码票据 末位校验码 加密解密
中图分类号:TP311 文献标识码:A 文章编号:1674-098X(2019)08(a)-0134-02
1 背景
微信作为中国使用最多的实时通讯工具,与我们每个人的线上线下生活息息相关。而微信,却不止于用户社交这一功能。博物馆传统的预约方式落后且低效,官网预约、APP等方式又略显复杂,结合微信公众号建设在线预约系统成了最佳选择。
公众无须到现场取票,关注博物馆微信公众号,轻松点击即可预约,同时系统展示各时段预约情况,用户可错开高峰预约,改善参馆体验。
2 系统总体设计
系统架构采用纯B/S模式,该模式具有易于部署、维护、升级且对硬件需求不高等优点。系统开发采用.NET Framework 4.5+HTML5架构,数据库为SQL Server,采用MVC(Model View Controller)分层设计模式,将业务逻辑、数据、界面显示分离,将业务逻辑聚集到业务层,简化了分组开发。本系统数据层使用EF(Entity Framework),EF框架是微软的.NET中ORM(对象关系映射)框架,在EF框架中把数据库中的关系表对应到了程序中的实体类,把数据表中的字段对应成了实体类中的属性。
二维码作为一种新的信息存储和传递技术,从诞生之时就受到了广泛关注和应用。电子票据为在线自动生成的二维码图片,集成了用户的预约信息及校验码。用户进场时出示二维码票据,二维码扫描仪扫描票据后还原预约信息进行真伪验证、可用性验证并记录入场信息。
3 关键技术
3.1 门票库存自动生成
利用SQL Server代理建立自动库存生成作业,数据库自动在计划时间点生成门票的库存数据,SQL语句如下。
3.2 门票预约并发处理
同一时间或者同一时刻多个访问者同时访问某一更新操作时,会产生并发,本系统中很重要的一个问题就是要处理好数据库并发,即多人同时在线预约时对门票库存进行准确处理。
数据库设计时在库存表中增加一列,字段名为VersionNum,数据类型为时间戳(TimeStamp),如图2所示。
字段VersionNum可以理解为版本号,它的作用是一旦有访问者修改数据了,该条记录的数据、版本号的值就会相应发生改变。版本号的同步更改是和数据库产品相关的,在SQL Server中会随着数据的修改自动同步更新版本号。相对于数据库中的并发处理方式,Entity Framework中的并发处理方式进行了不少简化。在System.Data.Metadata.Edm 命名空间中,存在ConcurencyMode 枚举,用于指定概念模型中的属性的并发选项。ConcurencyMode有两个成员:None表示在写入时从不验证此属性,这是默认的并发模式;Fixed表示在写入时始终验证此属性。当模型属性为Fixed时,系统会对此模型属性进行检测,当同一个时间对属性进行修改时,系统就会激发OptimisticConcurrencyException 异常。在EF DataBaseFirst中我们只需要将模型中“VersionNum”字段的“并发模式”属性修改为“Fixed”即可。当系统发生并发时,程序会抛出“DbUpdateConcurrencyException”异常,我们捕获这个异常后再按照自己的规则,重复执行请求的方法,直至返回成功为止。
3.3 票据数据加密解密
二维码票据的本质就是一段文本信息,如“预约人信息+预约日期+预约时段+其他信息”,为了防止不法人员仿制生成非法票据,该信息在生成二维码之前必须进行加密,然后在游客进馆时,系统通过二维码扫描器识别二维码获取加密字符串,再对字符串进行解密获取原始票据信息。加密技术通常分为两大类:“对称式”和“非对称式”。根据本系统的应用场景,选取对称式加密算法DES(Data Encryption Standard)进行加密,同时为了提高游客进场验票速度,加密密钥设计为8位字符。
3.4 末位校验码
为了进一步提升验票速度,本系统引入末位校验码技术,对加密后的字符串进行ASCII转码后,通过反复自加得到个位数作为校验码追加到字符串尾部,进场验证时,通过末位检验码可快速进行初始真伪判断。具体算法如下。
4 结语
本文在微信公众号的基础上,利用移动互联网及业界较新的技术,结合博物馆的实际需求,设计并开发了一个功能完善且十分稳定的在线预约系统,该系统完成了从线上预约到线下验证参馆一整套完整的流程,并通过实践证明了该平台的稳定性和可靠性。
参考文献
[1] 王晓影. 基于移动GIS的掌上预约服务系统及相关技术研究[D].辽宁工程技术大学,2017.
[2] 蒋菡,茅艳.浅谈二维码识别技术在博物馆中的应用[J].苏州文博论丛,2012(15):217-220.
[3] 李陶.首都博物馆免票网上预约系统及其作用[J].首都博物馆丛刊,2010(20):436-443.
[4] 谭松荣,王伟.浅谈大用户量高并发移动互联网系统的性能优化[J].计算机产品与流通,2019(2):137.
[5] 徐小平.基于手机二维码的电子票据服务系统设计[J].电脑与电信,2008(12):76-78.
[6] 王对,韩盛.基于AES加密算法的二维码防伪系统[J].电脑知识与技术,2019,15(11):64-66.
[7] 赵海.基于加密二维码的隐私保护技术研究与实现[D].西安电子科技大学,2018.