支付宝与微信扫码支付在医院的实现与应用

华北制药

1 引言


支付宝和微信的扫码支付作为目前移动支付的主流方式,在日常支付活动中,越来越多的消费者青睐于使用该支付方式。我院是一所综合性三甲医院,日门诊量在三千左右,传统的支付方式由于耗时长、易出错等原因使得挂号缴费窗口面临较大压力;另一方面自助服务设备由于支付环境安全性等问题也很难被患者广泛使用,扫码支付功能的出现有效地解决了这些问题。


扫码支付分为“主动式扫码”与“被动式扫码”两种模式。主动式扫码支付是医院系统按支付宝或微信支付协议生成支付二维码,用户再用支付宝或微信钱包客户端的“扫一扫”功能完成支付的模式,该模式适用于医院自助挂号机、缴费一体机等患者用户自助服务场景。被动式扫码支付又称条码支付或刷卡支付,是用户支付宝或微信钱包客户端向医院系统展示条形码或二维码,医院系统通过使用红外线扫描枪扫描后完成支付的模式,该模式适用于医院挂号收费柜台或挂号收费窗口。两种模式的扫码支付均能在十几秒甚至几秒内完成支付过程,在大大简化收费、试算、找零等流程的同时,既减少患者排队时间,又降低医院收到假币、找零出错等风险,为收费管理提供了创新解决方案。


2 支付场景业务流程


主动式扫码与被动式扫码在业务流程方面大同小异,并且整个系统最核心的支付完成异步通知流程是完全一致的,下面就仅以主动式扫码为例,详细介绍从生成支付二维码到用户进行扫码再到支付完成异步通知整个流程。


2.1支付二维码生成


 

图1 支付二维码生成流程图


如图1所示,支付二维码生成过程主要分以下几个步骤:医院收费终端系统根据患者ID号等就医凭证信息,到HIS中获取相关费用信息,若为医保用户,则向医保中心系统发送试算请求并得到结果。


如果用户需要使用扫码支付进行结算,则终端收费系统开启SOCKET服务侦听并将患者信息、本机IP地址、SOCKET侦听端口号及患者应收费用等信息打包成终端支付要素信息包提交至支付网关服务器。


支付网关服务器一方面保存终端支付要素信息以备支付完成后通知终端收费系统完成结算,另一方面根据支付宝/微信支付系统API调用规则,得到订单号与交易链接(code_url),并返回给终端收费系统。


终端收费系统在得到订单号与交易链接(code_url)后,把交易链接内容生成二维码图片展示给用户。


在支付二维码生成这个流程中,原来的收费终端程序只需要新增SOCKET服务侦听与提交终端支付要素信息包的HTTP请求操作,并在收到交易链接(code_url)后将其转化为二维码的功能,实现过程并不复杂。


2.2 支付完成异步通知 在用户扫描完支付二维码并完成支付授权后,支付宝/微信支付系统服务器将发起异步通知,告知交易发起方,交易已成功支付。其流程图如图2所示。


 

图2 支付完成异步通知流程图


支付完成异步通知流程主要如下:一旦用户成功支付,支付宝/微信支付系统服务器将发起异步通知,通知地址(notify_url)为调用下单API时定义的参数,本文中为支付网关服务地址。支付网关服务器得到用户支付成功消息后,会先去验证该支付消息真实性。确认该支付成功消息真实存在后,支付网关会去查找保存的终端支付要素信息,解析后与终端收费系统建立SOCKET连接,发送支付完成消息。终端收费系统得到支付完成消息,将支付费用信息提交至HIS,完成收费系统接下来的步骤,打印相关凭证,完成整个收费支付过程。


在用户支付完成后,可能由于网络等原因导致支付网关服务器没有第一时间收到用户支付成功消息,可以在终端收费程序调用查询订单API,查询订单的支付状态完成相应过程。


3 系统架构设计


经过上述业务流程梳理,本文将给出整个支付系统架构设计图。如图3所示,图左侧的收费子系统、挂号子系统和自助服务系统为终端收费系统,通过医疗网络与HIS数据库连接开展业务。图中央的安全隔离网闸能严格控制内外端信息交换,隔绝医疗网络与隔离区(DMZ区)网络物理连接。图右侧的支付网关服务器位于DMZ区,通过防火墙连接到处于互联网的支付宝/微信支付服务器。


 

图3 支付系统架构图


4 安全性设计


安全在整个支付流程中具有至关重要的地位,一旦存在安全漏洞,整个医院资金安全都将受到威胁。鉴于此,本院运用了以下安全策略来确保支付系统安全可靠平稳运行。 


4.1 网络安全 在网络安全方面,下一代防火墙、安全隔离网闸、支付网关的安全策略配置能确保网络稳定通顺。


防火墙作为第一道安全关起着“看守员”的职责,对于不同的接口/区域,应当划分不同IP组别,对业务所需应用对象进行地址转换,并开启DDOS防护以防止遭受攻击后影响正常支付回调接口。下一代防火墙的WEB应用防护和IPS功能可以有效地保护DMZ区服务器,弥补由于支付网关应用本身存在的漏洞可能引发的问题,如防止SQL注入、阻止WEBSHELL命令执行等。


安全隔离网闸由内端机、外端机、数据迁移控制单元三部分组成,能阻止来自外端的恶意攻击,也可以有效保护内网用户信息、防止泄露,进而减少病毒等恶意代码泛滥和传播的可能,从而确保受保护网络系统能够达到预期的安全等级。网闸也应当配置相应的对象组列表、服务列表及应用列表,制定详细明确规则,只允许特定源对象组访问目标对象组的特定应用或服务。


支付网关作为本支付系统的核心,应对所开放的服务具有审计和追溯功能。在支付网关管理端,能实时查看正在调用和历史调用的接口服务,记录每次调用所传递的数据内容,统计各接口服务调用次数,发现异常调用能实时报警。


4.2 数据安全 在数据安全方面,本系统主要通过数据加密与数据防篡改技术来提升安全性。由于考虑到支付完成后需要通知各终端收费系统完成结算,如果从位于DMZ区的支付网关服务器与医疗网络区的各个终端收费系统建立连接会增加安全风险。本系统设计了一套消息分发服务器,专门用于支付完成后将消息分发至各终端收费系统。系统中所传输的消息均在安全套接层(SSL)下传输,消息内容经过对称加密技术,内容中设置特定校验字段防止传输消息被篡改。

 

4.3 交易安全 由于扫码支付交易业务存在于互联网环境下,存在DNS劫持、运营商插入广告、数据被窃取、正常数据被修改等安全风险,所以不论是医院还是支付宝/微信支付服务商都最大限度地保证交易安全。通过签名算法与生成随机数算法可以保证交易订单的可靠性,通过SSL证书管理、HTTPS服务器配置以及支付完成消息的验证机制可以很大程度地保证交易的安全性。


5 财务管理设计


扫码支付交易完成后,其资金进入在支付宝/微信的支付账户,超过保留金额后,会自动提现至医院对公账户,故终端收费系统的收款员结账方式不同于现金,财务管理方式也不同于传统。


以军卫一号为例,我院在收费管理系统和医院财经管理信息系统(医信通)中,新增了一个新的支付方式,如“移动支付”。在收款员日常结账中,以该种支付方式为结算的金额并不需要上缴现金。


信息科人员需在HIS数据库中建立新的OUTP_UNIPAY_MASTER表用于记录扫码支付交易信息,便于对账及退款,其主要字段包括收据号、患者ID号、姓名、交易时间、交易单号、交易类别、交易金额、操作员号、终端号、退费标记、退费收据号、支付方式等。


信息科人员需编写定时任务和对账程序,主要是通过支付网关获取支付宝/微信支付账单,并核对HIS账单与网关记录、HIS账单与支付宝/微信支付账单是否准确无误。


出纳人员需要核对从银行得到的凭证金额与HIS中“移动支付”金额是否一致也可通过对账程序得到银行账单明细实现自动化对账。


如果存在差额,可从对账程序中快速定位存在疑问的交易并找出原因。


6 结论与展望


我院支付宝/微信扫码支付自上线以来,广受伤病员朋友及医院收费人员好评,充分体现了医院“贴近服务、贴近群众、贴近生活、贴近实际”的宗旨。实践证明,支付宝/微信扫码支付能便捷地嵌入挂号、收费及自助服务系统中,有效地缩短付款结算过程时长,降低收款员操作失误风险,改善患者就医支付体验,为数字化、智能化医院收费管理提供了创新的思路与解决方案。


(来源:摘自《中国数字医学》2017年第1期  作者:陈文迪 黄智勇 叶晓景 单位:解放军第113医院


《中国数字医学》微店,点击以下阅读原文进入