通通酒店对接流程

一、对接场景

用户希望将酒店发卡功能集成到自己的管理系统中,实现不使用通通酒店,也能在自己的酒店管理系统内进行管理的同时使用下发酒店卡或者下发密码,蓝牙钥匙,远程控制锁等功能

二、前置步骤

  1. 前往通通酒店官网下载通通酒店app,并创建酒店,创建酒店使用的供应商编号最好咨询锁供应商(厂家)获取,若锁厂家无法提供该编号,开发者也可以联系通通酒店客服获取。注册完成后用手机app蓝牙初始化添加锁 image

  2. 酒店管理员账号在通通酒店客户端设置里申请对接,通过一键复制获取对接参数,开发者可以再用该参数获取对接发卡用的hoteInfo和对接门锁的accessToken,可以用接口获取锁的楼栋号楼层号以及mac地址等数据,也可以直接在对接界面导出锁数据表格 image

三、门锁对接

通过调用开放平台接口来管理锁 以发送随机密码为例,发送随机密码,该方法无需锁联网

  1. 用通通酒店客户端导出数据(clientId,clientSecret,username,已经MD5加密后的password,注意:不是用通通酒店密码,也切勿重复MD5加密导出的密码)调用获取token接口获取accessToken

  2. 有了AccessToken之后就可调用其他接口,如:

如果使用通通酒店app添加了锁和网关,之后可以调用相关的接口远程操作连有网关的锁

四、对接酒店发卡器以及demo使用教程

以发卡器DLL DEMO为例(Demo下载地址),DLL文档, 对接代码;如果是对接酒店发卡器,请参阅下方对接步骤,如果是想使用demo,请参考Demo步骤

  1. 对接:使用通通酒店客户端导出的对接数据(参考本节前置步骤,获取clientId和client Secret),调用接口https://cnapi.ttlock.com/v3/hotel/getInfo 获取hotelInfo, 此API具体描述请参考DLL文档--获取hotelinfo

    Demo:直接把从通通酒店中获取到的client_id和client_secret粘贴到对应位置,然后点击从开放平台获取hotelInfo即可image

  2. 连接发卡器后,可以使用快捷键win + x ---设备管理器---端口中查看发卡器使用的串口 image

    对接:使用DLL手册中的int CE_ConnectComm (const char *portName)方法配置发卡器连接串口来连接设备

    Demo:将端口填写到demo中对应位置,确认发卡器连接串口后,点击连接设备串口

    image

  3. 串口配置成功后,配置发卡器,需要用10分钟内的hotelinfo

    对接:通过DLL手册中的int CE_InitCardEncoder(const char *hotelInfo)方法配置发卡器,若发卡器已经配置过,则不需要重复执行,该接口需要用10分钟内的hotelinfo

    Demo:直接点击配置发卡器,需要用10分钟内的hotelinfoimage

  4. 更改发卡器使用扇区使其和酒店扇区一致。可以在通通酒店客户端上方选项栏点击“酒店”-“基本信息”来查看酒店使用扇区,通通酒店酒店默认使用扇区为12、13、14、15、16,因此用该方法配置扇区参数为“0000000000011111”(1代表扇区可用),只有锁扇区和卡扇区一致才能开锁成功,如果有修改过酒店扇区需要重新配置发卡器扇区。

    对接:此步骤对应DLL对接手册中的int CE_SetSectors(const char *sectors)方法(配置发卡器扇区)

    Demo:知道酒店使用扇区后直接进行配置即可

    image

  5. 将空白卡初始化加密成酒店专用卡,若返回106错误说明卡已经被加密成别的酒店的卡,不是空白卡。只有第一次发酒店卡需要把空白卡加密成酒店卡,之后再写此卡不用重复执行,若在通通酒店中发过卡则可以跳过该步骤,更换酒店的时候最好把酒店卡恢复成空白卡,该接口需要用10分钟内的hotelinfo

    对接:此步骤对应DLL手册中CE_InitCard(const char *hotelInfo)方法(酒店专用卡)

    Demo:点击写酒店专用卡---将空白卡放置在发卡器上。image

  6. 在通通酒店客户端对接界面导出锁相关数据(注意用的是锁楼栋编号楼层编号不是楼栋名称和楼层名称),有效期截至时间传精确到秒的时间戳,添加的开锁数据为叠加而并非覆盖。

    对接:通过int CE_WriteCard(const char *hotelInfo, int buildNo, int floorNo, const char *mac,unsigned long timestamp, bool allowLockOut)新增单条IC卡开锁数据,通过int CE_ReadCard(const char *hotelInfo, char **hotelArray)读取IC卡数据

    Demo:直接填写相关数据按照步骤来即可image

    新增数据类型buildNofloorNomac备注
    总卡00“000000000000”需使用10分钟内的hotelInfo
    楼栋卡楼栋号0“000000000000”需使用10分钟内的hotelInfo
    楼层卡楼栋号楼层号“000000000000”需使用10分钟内的hotelInfo
    房间卡楼栋号楼层号锁mac允许离线操作

五、注意事项