收藏 分销(赏)

珠海社保系统POS功能接口-珠海市人力资源和社会保.docx

上传人:xrp****65 文档编号:8695415 上传时间:2025-02-26 格式:DOCX 页数:11 大小:72.03KB 下载积分:10 金币
下载 相关 举报
珠海社保系统POS功能接口-珠海市人力资源和社会保.docx_第1页
第1页 / 共11页
珠海社保系统POS功能接口-珠海市人力资源和社会保.docx_第2页
第2页 / 共11页


点击查看更多>>
资源描述
珠海社保系统 医院POS功能接口 修订记录: 版本 时间 修订人 修订内容 目 录 1 系统目标 2 1.1 背景情况 2 1.2 系统目标 2 1.2.1 功能目标 2 1.2.2 性能目标 2 2 系统结构 2 2.1 概述 2 2.2 网络结构 3 2.3 系统划分 3 2.3.1 PC端动态链接库 3 2.3.2 POS端演示程序 3 3 数据链路层和传输层通讯协议 3 3.1 数据链路层协议 3 3.2 传输层协议 3 4 交易描述 5 4.1 脱机消费 5 4.1.1 交易流程 5 4.1.2 数据流程 6 4.1.3 应用层数据包 6 4.2 黑名单管理(暂未启用) 9 4.2.1 数据流程 9 4.2.2 应用层数据包 10 1 系统目标 1.1 背景情况 珠海市社会保障卡系统建设目标为五保合一,并作为广东省社保系统的试点系统。 个人医疗保障账户要求专款专用,个人医疗保障账户和社会保障卡上的医疗保障电子钱包上的金额专用于支付指定的医疗和购药费用。 目前,交易中心的结构未定(单中心或无中心),本子系统要求充分考虑了两种中心的情况。 1.2 系统目标 本子系统要求采用珠海社保指定的IC卡、PSAM卡,在P70-S POS终端上完成脱机消费以及与医院收费PC之间的数据交换,向珠海社保局及相关部门证明系统结构的可行性和设备的可用性。 同时,要求本子系统在结构上允许采用不同的IC卡交易终端设备(包括POS终端和IC卡读卡器),无论采用何种终端设备,通讯接口不变。 1.2.1 功能目标 l 实现社保卡的脱机消费 l 实现黑名单管理 l 实现与PC之间的串口通讯 l 预留圈存交易接口,但本次不要求实现 1.2.2 性能目标 l 不计入用户输入密码的时间,脱机消费交易在3秒内完成 l 终端至少有160k字节的存储空间,可用于存储约20000条黑名单,该存储空间要求掉电保持 l 终端至少有100k字节的存储空间,可用于存储约2000条交易明细,该存储空间要求掉电保持 2 系统结构 2.1 概述 POS终端与PC通过RS232串口连接,每次消费交易由PC触发,POS终端取得PC给出的交易金额和其他有关信息后,完成脱机消费交易,并将交易结果和批上送时需要的数据回传给PC。 POS上应同时保留交易信息,根据PC的通知清除。 黑名单更新时,由PC发送黑名单更新通知给POS,POS发出更新请求,逐批从PC取得黑名单信息,直至完成,黑名单更新要求在5分钟内完成,不需要支持断点续传。 2.2 网络结构 LAN 动态调用 PC DLL RS232 POS 2.3 系统划分 本演示子系统软件分为三个部分: l PC端程序 l PC端动态链接库 l POS端程序 2.3.1 PC端程序 使用Power Builder编写。 2.3.2 PC端动态链接库 C语言编写,由Power Builder程序动态调用,可运行平台包括:Windows 95 / 98 / NT / 2000 / XP。 2.3.3 POS端程序 C语言编写,在P70-S上运行。 3 数据链路层和传输层通讯协议 3.1 数据链路层协议 通过RS232串口传输数据。 缺省参数:9600Bps,8位数据位,1位停止位,无校验位。 3.2 传输层协议 数据包以STX(0x02)起始,后跟2字节BCD码长度(序号和实际传输内容的长度),1字节seq标示信息包序号,中间为实际传输内容,以ETX(0x03)结束,最后为1字节的LRC校验。实际传输内容要求为ASCII可见字符(‘0’-‘9’, ‘a’-‘z’, ‘A’-‘Z’)形式的信息。如下: STX (1字节) 长度 (2字节,BCD码,高位在前) Seq (1字节) 实际传输内容 (可变长,最大不超过1000字节) ETX (1字节) LRC (1字节,从长度开始至ETX) 字符间超时时间为0.5秒。 Seq的有效值为’0’ – ‘9’,通讯双方必须维护自己的Seq, 每一新的数据包,Seq值循环递增。连续两个数据包,若seq相同,则视为重发的数据包。 接收方收到发送方的数据包后,LRC校验成功的,发送一字节ACK(0x06)字符表示确认,否则发送NAK(0x15)表示数据包出错。接收超时的,也发送NAK。如果收到Seq值重复的数据包,也发ACK予以确认。 发送方收到接收方的NAK或是发送数据包3秒后未收到ACK,视为本次发送失败,进行重发,重发最多进行两次。三次发送均未成功的,放弃发送,向应用层报告失败。 4 交易描述 4.1 脱机消费 4.1.1 交易流程 4.1.2 数据流程 4.1.3 应用层数据包 l 脱机交易请求包1(查询卡基本信息) 为空,传入的长度参数为0 l 脱机交易响格式(查询卡基本信息) 交易类型(1字节,查询为0x31) (1字节,交易结果标志 交易数据 (交易成功426定长字节,内容见下,交易失败时,为中文提示信息) 交易结果标志:1字节, 0x00-成功,后面跟的是107个字节的交易数据 其他值 交易失败,后面以中文字符方式应答了失败原因,不需要处理其响应码 交易数据:107字节的交易数据(为了不更改以后接口用) 注:BCD码为压缩的十进制数,HEX为16进制数,为不可压缩数值。 卡的识别码 16字节 32位压缩BCD码 卡类别 1字节 规范版本 4字节 HEX码 初始化机构编号 12字节 24位压缩BCD码 发卡日期 4字节 8位压缩BCD码 失效日期 4字节 8位压缩BCD码 卡号 9字节 字符 公民身份证号码 18字节 字符 姓名 30字节 字符 性别 1字节 字符 民族 1字节 2位压缩BCD码 出生地 3字节 6位压缩BCD码 出生日期 4字节 8位压缩BCD码 附上C语言结构 typedef struct { unsigned char card_id [0x10]; unsigned char card_type [0x01]; unsigned char criterion [0x04]; unsigned char initorgan [0x0c]; unsigned char issuer_dt [0x04]; unsigned char expire [0x04]; unsigned char cardno [0x09]; unsigned char personid [0x12]; unsigned char name [0x1e]; unsigned char sex [0x01]; unsigned char nation [0x01]; unsigned char homeplace [0x03]; unsigned char birthday [0x04]; } T_MEDICARDINFO; l 脱机交易请求包1(查询) 为空,传入的长度参数为0 l 脱机交易响格式(查询) 交易类型(1字节,查询为0x31) (1字节,交易结果标志 交易数据 (交易成功426定长字节,内容见下,交易失败时,为中文提示信息) 交易结果标志:1字节, 0x00-成功,后面跟的是426个字节的交易数据 其他值 交易失败,后面以中文字符方式应答了失败原因,不需要处理其响应码 交易数据:426字节的交易数据(为了不更改以后接口用) 注:BCD码为压缩的十进制数,HEX为16进制数,为不可压缩数值。 卡的识别码 16字节 32位压缩BCD码 卡类别 1字节 规范版本 4字节 HEX码 初始化机构编号 12字节 24位压缩BCD码 发卡日期 4字节 8位压缩BCD码 失效日期 4字节 8位压缩BCD码 卡号 9字节 字符 公民身份证号码 18字节 字符 姓名 30字节 字符 性别 1字节 字符 民族 1字节 2位压缩BCD码 出生地 3字节 6位压缩BCD码 出生日期 4字节 8位压缩BCD码 基本医疗保险个人账户建立日期 4字节 8位压缩BCD码 定点医疗机构名称1 62字节 字符 定点医疗机构名称扩展1 8字节 字符 定点医疗机构代码1 9字节 字符 定点医疗机构名称2 62字节 字符 定点医疗机构名称扩展2 8字节 字符 定点医疗机构代码2 9字节 字符 定点医疗机构名称3 62字节 字符 定点医疗机构名称扩展3 8字节 字符 定点医疗机构代码3 9字节 字符 医疗证号 15字节 字符 基本医疗保险个人账户 10字节 字符 医疗人员类别 1字节 医疗保险用卡方式 1字节 基本医疗保险个人账户余额 4字节 高位在前的HEX码 年度个人自付累计金额 4字节 高位在前的HEX码 年度统筹基金支付累计金额 4字节 高位在前的HEX码 发卡行ID 8字节 16位BCD码(转换后取左三位上传) 最近审核日期 4字节 8位压缩BCD码 分散因子 8字节 HEX码 黑名单版本号 19字节 附上C语言结构 typedef struct { unsigned char card_id [0x10]; unsigned char card_type [0x01]; unsigned char criterion [0x04]; unsigned char initorgan [0x0c]; unsigned char issuer_dt [0x04]; unsigned char expire [0x04]; unsigned char cardno [0x09]; unsigned char personid [0x12]; unsigned char name [0x1e]; unsigned char sex [0x01]; unsigned char nation [0x01]; unsigned char homeplace [0x03]; unsigned char birthday [0x04]; unsigned char accreatedt [0x04]; unsigned char hospitalname1 [0x3e]; unsigned char hospitalnameext1 [0x08]; unsigned char hospitalcode1 [0x09]; unsigned char hospitalname2 [0x3e]; unsigned char hospitalnameext2 [0x08]; unsigned char hospitalcode2 [0x09]; unsigned char hospitalname3 [0x3e]; unsigned char hospitalnameext3 [0x08]; unsigned char hospitalcode3 [0x09]; unsigned char medicerti [0x0f]; unsigned char mediaccount [0x0a]; unsigned char meditype [0x01]; unsigned char usecardtype [0x01]; unsigned char balance0 [0x04]; unsigned char balance1 [0x04]; unsigned char balance2 [0x04]; unsigned char bankid [0x08]; unsigned char latestchktime [0x04]; unsigned char diverfactor [0x08]; unsigned char blacklistver [0x13]; } T_MEDICARDINFO; l 脱机交易请求2(消费) 金额 (12位数值,压缩成6字节BCD码,不足时前补0) 商户名称(16字节,即最多8个中文字,不足填空格) 商户操作人员姓名(8字节,即最多4个中文字,不足填空格) PC编号 (12字节ASCII, 不足时后补二进制0) PC交易序号 (12字节ASCII, 不足时后补二进制0) l 脱机交易响应2(消费) 交易类型(1字节,消费为0x32) 0x02 (1字节,交易结果标志) 交易数据 (交易成功34定长字节,内容见下,交易失败时,为中文提示信息) 交易结果标志:1字节, 0x00-成功,后面跟的是34个字节的交易数据 其他值 交易失败,后面以中文字符方式应答了失败原因,不需要处理其响应码 交易数据:34字节, 仅在交易成功时需要,包括以下数据: 交易类型标志,1字节,根据医保卡规范 交易金额 12位数值 6字节BCD码,高位前,单位为分 交易日期, 8位数值, 4字节BCD码,CCYYMMDD 交易时间, 6位数值, 3字节BCD码,HHMMSS 终端机编号, 12位数值,6字节BCD码 PSAM交易号, 4字节 高位在前的HEX 码 卡片的交易签名TAC 4字节的 HEX码 卡片的脱机交易序号 2字节 高位在前的HEX 码 卡片交易后余额 4字节 高位在前的 HEX 码 注意:1 BCD码为压缩的十进制数,HEX为16进制数,为不可压缩数值。 2.金额使用压缩的12位BCD码 参照ISO8583规范 3.所有数据使用规范参照现用的医保卡标准,银行清算需要这些数据进行交易有效性检查 附上C结构 typedef struct { /*交易类型标志 */ unsigned char transtype; /*交易金额 */ unsigned char transamount[6]; /*交易日期时间 */ unsigned char transdatetime[7]; /*终端机编号*/ unsigned char samid[6]; /*PSAM卡交易序号 */ unsigned char psamptc[4]; /*用户卡验证码 */ unsigned char transtac[4]; /*用户卡交易序号 */ unsigned char transoffctc[2]; /*用户卡余额 */ unsigned char nowbalance[4]; } T_SENDTRANS; l 脱机清算请求 为空,传入的长度参数为0 l 脱机清算响应 交易类型(1字节,为0x34) (1字节,交易结果标志 交易数据 (交易成功12定长字节,内容见下,交易失败时,为中文提示信息) 交易结果标志:1字节, 0x00-成功,后面跟的是12个字节的交易数据 其他值 交易失败,后面以中文字符方式应答了失败原因,不需要处理其响应码 交易数据:12字节的交易数据 注:BCD码为压缩的十进制数 终端交易总金额 12位数值 6字节BCD码,高位前,单位为分 终端交易总笔数 12位数值 6字节BCD码,高位前 4.2 黑名单管理(暂未启用) 在本演示系统中,黑名单以文本文件方式在PC上保存,并可手工修改,黑名单以全量方式从PC传给POS。 整个黑名单可能分多个数据包发出, 4.2.1 数据流程 4.2.2 应用层数据包 l 黑名单更新通知 0xa0 (1字节,黑名单更新通知) 0xa0 (1字节,通知数据代码) 最新黑名单版本号 (8位数值,压缩成4字节BCD码) l 黑名单更新请求 0xa0 (1字节,黑名单更新) 0x01 (1字节,请求数据代码) 黑名单版本号 (8位数值,压缩成4字节BCD码) 已更新的黑名单纪录数 (6位数值,压缩成3字节BCD码) l 黑名单更新响应 0xa0 (1字节,黑名单更新) 0x02 (1字节,响应数据代码) 黑名单版本号 (8位数值,压缩成4字节BCD码) 后续数据标志 (1字节,0x00-无,更新完成,0x01-有,继续更新) 黑名单数据 (变长,每8字节为一条纪录)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服