无线支付系统的实现
2018-03-01张俊文
张俊文
摘 要:随着科学技术的不断发展,移动支付已成为人们日常购物的主要支付方式。文章采用无线支付方式实现自动售货机的无线支付系统,通过二维码的方式完成产品的识别,介绍了整个支付流程如何与金融系统对接,数据的处理,并保证信息的安全可靠。
关键词:移动支付;自动售货机;二维码
1 无线支付的引入
传统售货方式,我们必需要有人来参与,这是因为我们必须用人来完成商品交易,而伴随着新的支付方式的产生和电子技术的发展,商品交易已经可以脱离人的参与,作为无人售货机的革新,也是基于这两方的进步而产生的。无人售货机的设计可以说也是因为先进的支付方式而产生的变革。了解支付方式及实现方法也是我们设计的重要基石。
2 无人值守售货机扫码支付方式
2.1 扫码支付原理
扫码支付原理是一种利用二维码海量存储信息的能力,同客户账户体系共同构建起来的新一代无线支付方式。该支付方式可以是商家把账号、商品价格等交易信息汇编成一个二维码在客载体上发布。用户通过手机客户端扫描二维码,就可实现与商家支付宝账户的对应、确定[1]。二维码的前身就是条形码,简单地说二维码就是在条形码基础上利用某种特定的几何图形按一定规律在平面上分布的图形来表示数据符号,一个二维码可以包含多种信息,该信息码构造简单方便,灵活实用,读取可靠性高,不仅能防止错误产生,同时有纠正错误的能力,既读取数据有错误,也能通过二维的纠错方法完成正确读取信息,同时二维码中可以进行一定的加密处理。正因为二维码的高安全性、高可靠性,才使我们的移动支付成为可能,现在目前流行的移动支付方式都与二维扫码有关。
2.2 二种扫码支付方式
从二维码的产生和客户扫码方式的不同,我们基本上可以把移动扫码方式分为两种, 一种是当客户想要购买某种商品时,触发商家后台服务器连接操作,商家后台服务器通知支付宝支付后台,由支付宝后台产生该商品二维码返回给无人售货机远程服务器,也就是商家后台,再由商家后台发送订单二维码给远程无人售货机显示输出。用户扫码读取订单信息完成支付后,支付宝支付后台确定用户已支付信息发给客户,同时异步通知支付结果结商家后台服务器。商家后台服务器完成相应开关信息传送[2]。大致情况如图1所示。
第二种方式是当用户有商品需求信息后,打开支付宝的个人账户二维码,无人售货机终端通过扫描器用户二维码信息,把信息同商品信息传递给商家后台服务器,商家后台服务器读取商品信息把商品信息传递给支付宝后台服务器,支付宝后台服务器把商品信息传给支付宝客户,支付宝客户确定商品后完成支付动作,再返回给支付宝后台支付结果,支付宝后台即刻把结果传给商家后台服务器,商家后台服务器收到支付信息后,立即处理支付动作,开启远程售货窗品,完成出货动作。以上两种方式均可实现移动支付,相对于第一种而言,由于是用户最后确定支付,对于用户而言适用性更好些,同时由于是移动支付普遍采用动态生成二维码技术,相对而言客户支付安全性更高。但作为商家,后台服务器就要完成商品二维码的生成工作[3]。
3 二维码生成规则
在支付宝二维码中的内容实际含了商品各种信息,其形式为一连串定义好的字符串,其中XXXXX为开发者所要填写的商户信息,商户调用第三方库生成二维码图片。
3.1 创建扫码支付方法
要使我们的无人售货机能通过支付宝或微信进行支付,必然会使用对应的支付开放平台所提供的SDK接入支付平台。大致过程如下。
第一步:创建应用程序并获取相应平台的商家ID标识码,也就是注册分配标识码。以支付宝为例,要想应用程序能使用支付宝移动支付,首先需要开发者到支付宝的蚂蚁金服开放平台的开发者中心中实名认证,创建登记应用,并提交审核,审核通过后会生成应用APPID,这时就可以申请开通开放产品使用权限,通过APPID应用能调用开放接口。一般来说,只需填写应用的基础信息,如应用名称、应用图标,这一部分可以在以后的开发中再更改。在开发应用中需要先选择使用场景,也就是使用类型。
第二步:配置应用环境内容。在这步,要设置就用网关,用来接收支付平台异步通知,给出配置支付应用环境。
第三步:配置密钥。为了保证交易双方的身份和数据安全,需要配置双方密钥。首先是商户对交易数据使用给应用私钥加签后发起支付请求给支付宝,支付宝会用应用所提交的应用公钥对交易数据进行验签,以核查交易是否正确。如果正确,返回支付结果,商家对支付宝返的支付结果使用支付宝提供的公钥验签,通过这种密钥处理方式保证双方交易信息和数据的安全。
3.2 生成RSA密钥的方法
以支付宝生成密钥为例,首先根据开发语言选择密钥格式。其次选择密钥长度,一般新建应用使用2048位。利用支付宝提供一键生成一对RSA密钥。再点击“生成密钥”,会自动生成商户应用公钥和应用私钥。如图2所示。
第一步:处理应用公钥格式。将公钥文件去除头尾、换行和空格,转成一行字符串。把该字符串提供给支付宝账号管理者,登录开放平台上传应用公钥并获取支付宝公钥。
第二步:处理支付宝公钥。获取上一步得到支付宝公钥,用于支付宝返回数据的验签。
每三步:上传应用公钥并获取支付宝公钥。
3.3 后台交易信息维护
本处因为支付宝有一个完整的开发文档帮助,就不再叙述详细过程,只对支付关键点做说明。
在支付宝的开发平台上创建一个应用,簽约后,为保证交易双方的安全性,需要配置双方密钥,在接入设计时有两种架构,我们选用商户/系统商后台转发方式,商家先预下单到商家后台,再请求到支付宝。适合商户有各种自助终端,用户在自助终端扫码支付。支付实现步骤:
用户登录支付宝钱包,点击首页“付款”,选择支付,进入支付界面。
用户在售货机上购买商品,售货机系统生成支付宝订单,用户确认支付金额。
用户出示钱包的“声波付”,对准售货机的声波接收的装置。
售货机收到声波请求后,售货机系统向支付宝提交支付请求。
付款成功后商家收银系统会拿到支付成功或者失败的结果。
3.4 在线验收
在线验收是面向商户提供的一种验证检查的能力,可以帮助商户在接入支付宝产品后,迅速验证接入的规范情况。它也可以帮助商户在活动上线前,迅速验证优惠活动的正确性。商户或系统商在对接支付宝时,通常有以下两种形式:
(1)门店直连,即门店收银终端直接通过公网请求支付宝。
(2)商户/系统商后台转发,即商户/系统商开发并部署独立的服务端(支付中台),门店收银终端先请求到商户服务端,再由服务端请求支付宝。
一般采用第二种转发模式,这样可以方便日志记录、问题排查,同时将支付逻辑和原有业务逻辑尽量解耦。
3.5 商户订单号生成
当同一业务订单需要进行多次支付(前几次失败或被撤销)时,需要保证每次调用接口传入的商户订单号out_trade_no不重复,因此,不能直接将业务订单号作为商户订单号使用,而是应该为每个支付请求生成独立的流水号,并在商户服务端维护业务订单号与流水号。要实现终端控制节点自动售货的功能,服务器不仅要与终端控制节点建立无线通信联系,而且还要完成于支付宝支付信息的采集,并通过数据的采集进行自动售货机日常数据的管理服务。
4 结语
本文综述了整个无人售货交易的全部过程,实际上正是由于这种移动支付的产生,并且能够保证交易的安全性,信息交易的可靠传递,才是我们进行无人售货系统升级的基础。本章以支付宝为例,介绍了整个支付流程,以及如何与金融系统对接,数据流如何处理,介绍了数据是如何通过二维码的处理完成系统交易,并保证交易的安全。
[参考文献]
[1]姚越.自动售货机人机交互设计研究[D].天津:天津大学,2014.
[2]徐义钊.复杂背景下二维码实时识别技术的研究与开发[D].无锡:江南大学,2013.
[3]邢平立,白惠艷.二维码概述及应用[J].网印工业,2013(7):52-55.