Interlib系统与校园图书馆一卡通对接实现过程

作者: 发布于:2014/2/13 20:18:39 点击量:

 校园Interlib系统与图书馆一卡通对接实现过程

  当读者持一卡通来到图书馆办理开通、借还、缴纳罚款或其他费用时,需要使用读卡器读取卡片内保存的卡号,通过一卡通接口程序连接一卡通中心数据库,调用对应信息中的学工号、现有金额等相关信息,反馈至Interlib系统,再进行相应的处理,并将处理结果通过一卡通接口程序反馈给一卡通中心数据库,从而做到交易信息“双轨制”记载。

具体流程见图1:一卡通工作流通图。

 


  根据操作流程,接口程序需要将Interlib与一卡通中心数据库的数据关联起来,需要处理初始化读卡器动态库与读卡器设备,进行一卡通交易、一卡通查询,以及下载一卡通文件等工作。下面根据设计步骤,简要说明开发过程。


  1、Interlib读者信息数据库与一卡通中心数据库的关联由于我馆部分读者信息是由老管理系统转移过来的,因此存在数据格式不统一、读者信息字段设置的太少,部分关键字段数据有缺失等问题。经调研,我们决定在清还图书的基础上,重建读者信息库。新建读者数据库,新注册读者数据全部从一卡通中心直接调用,鉴于一卡通中心的数据来自学院人事处和教务处,并增加了部分实用的字段,如照片和E—mail等,从而可以保证数据的准确性以及确保与学院其他部门一致。


  Interlib与一卡通中心数据库各自都有完整的字段设置。要将两个数据库关联起来,首先需要确定数据库连接的关键字段,并以此作为数据对应的依据。本系统使用一卡通中心数据库中的学工号和Interlib中的读者证号作为相互关联的关键字段。


  对应关系图如图2:

图2:数据库对应关系图
  建立对应关系后。读者注册时由读卡器读取一卡通卡号,经过~卡通接口程序将卡号发送至一卡通中心数据库验证,调取相应的学工号,返回给Interlib。Interlib根据返回信息检查读者库中是否存在该读者证号,如不存在则显示提示信息。Interlib调用一卡通中心数据库中注册所需字段数据,根据映射关系自动生成读者注册信息,完成新读者注册。


  2、数据结构设计

  在与Interlib图书馆集成管理系统对接时,所以最有效的数据共享格式是MARC格式。当接口程序将一卡通中心数据库中的数据传送给Interlib时,一卡通接口程序把可提供的(有用的)信息通过Interlib提供的API函数组成一个MARC记录,然后发送Interlib。Interlib接收到该MARC记录,取出相应的字段进行处理。

因此一卡通接口程序需要为每一种类型的操作对应一个提前定义好的MARC元数据结构包,例如卡操作包,卡消费/退费包,账户信息包等等,为双方的数据代码转换提供了桥梁。下面示例卡消费/退费包MARC记录定义。

    采用MARC作为数据传输格式的最大便利就是可扩展,当有新的需求时,仅仅增加或修改各项MARC定义即可。

  3、第三方动态库、读卡器初始化

  一卡通读卡器获取读者信息替代了原先的条码扫描,一卡通接口程序首先要初始化读卡器的动态库,驱动读卡器。

  根据读卡器厂商给出的API函数,动态库初始化函数
  定义如下:
  BOOL WINAPI TA—Init(char IP,short port,unsigned short SysCode,unsigned short
TerminalNo,bool ProxyOffline,ULONG MaxJnl);

  
  4、一卡通交易模块设计

  代扣、代缴是一卡通的主要功能之一。通过交易/退费函数实现。

  调用函数定义如下:
  int—stdcall TA—Consume(CardConsume pCardCons,bool lsVerfy,short TimeOut=10);
  入口参数:
  pCardCons一>CardNo一消费卡片的卡号。
  pCardCons一>Operator一操作员代码的操作员
  代码,填写两个字节的操作员代码。
  pCardCons一>TranAmt一卡片消费的交易额,必须小于0
  IsVerfy一是否验证消费限额,第一次调用时需要验证,如果返回值是超过消费限额,则第三方程序验证消费密码,如果验证通过,这个参数就可以设置为false(不验证消费限额),如果验证不通过,继续验证密码。

  pCardCons一>TranJnl一流水号。
  TimeOut一交易超时时间,缺省为10秒。

  出口参数:
  pCardCons一>RetCode一后台交易的返回值。
  pCardCons一>BackJnl一交易的后台流水号。
  pCardCons一>Balance一卡片余额。
  
  5、信息查询与文件下载模块设计当新读者注册时,需要调取一卡通服务器数据库中的账号信息。需要下载照片等文件。

  账户信息查询函数定义如下:
  int—stdcall TA—InqAcc(AccountMsg pAccMsg。short TimeOut=10);
  函数功能:根据帐号/卡号/学]:号/证件号精确查询帐户信息
  人口参数:pAccMsg一>AccountNo一消费卡片的帐号。
  pAccMsg一>CardNo一消费卡的卡号
  pAccMsg一>StudentCode一学t号
  pAccMsg一>IDCard一证件号码
  TimeOut一交易超时时间,缺省为10秒
  出口参数:
  pAceMsg一从数据库中读Hj的帐户信息,包括姓名Name、性别、SexNo、部门代码DeptCode、矗号CardNo、帐号AccountNo、学】:号StudentCode、身份证号IDCard、身份代码PID、身份序号IDNo、余额Balance、过期时间Expire.Date、补助序号SubSeq、是否在本系统内开通IsOpenlnSys。pAccMsg一>RetCode一后台交易的返回值。


  备注:pAccMsg一>AccountNo、pAccMsg一>CardNo、pAcc—Msg一>StudentCode、pAccMsg一>IDCard这四个参数是选择查询条件,必须输入一个。文件下载函数采用照片下载为示例,定义如下:

  int—stdcall TA—DownPhotoFile(char{IDNo,char$PhotoFn,short Timeout=lO);
  函数功能:根据身份序号下载相片文件
  入口参数:
  IDNo一要查询的人的身份序号,必须是12个字节的字符串
  PhotoFn一查询成功后生成的相片文件名
  TimeOut一交易超时时间,缺省为10秒
  备注:下载完成的相片文件放到Photo目录下
   
  三、结束语

  随着数字化建设的深入,高校图二挡馆在越来越多的方面需要借助一卡通开展工作,一卡通所包含的功能也有待丰富。展望未来的校园一卡通系统,将在现有应用的基础上进行扩展,逐步建立起一个以图书馆一一校园金融服务平台为核心的网络。持卡人可以根据实际应用情况使用电话银行、手机银行,以及遍布网{5馆各个角落的自助设备享受众多先进的服务项目。,最终实现基于Intrant和图书服务中心的电子教学与电子商务圈,形成集中式管理、动态