APP下载

扫码支付在一卡通自助售卡充值终端系统中的应用

2019-01-30林虎苏浩伟谢振东李济腾陆永静

电子技术与软件工程 2019年1期
关键词:充值扫码开发者

文/林虎 苏浩伟 谢振东 李济腾 陆永静

1 引言

近年来,随着智能手机以及移动互联网的广泛应用,微信支付和支付宝等扫码支付技术在各行各业的应用已日渐成熟。以往城市一卡通交通IC卡的销售或者充值业务,通常需要在服务点或商户配置专职服务人员,并以现金方式完成支付交易,现金的清点以及押运成本非常大,另外,携带现金、假钞、换钞等同样给乘客造成诸多烦恼。在城市主要交通站点或者客流量较大的交通枢纽站部署自助售卡充值终端,可以全天候为乘客服务。乘客使用微信或支付宝等手机应用,扫描自助终端生成的二维码,完成在线支付后,即可购买交通IC卡或者对交通IC卡进行充值,大大提高便利性和降低服务点的成本。

2 扫码支付技术概述

本文使用的扫码支付技术,是指按照扫码支付提供商(微信支付和支付宝等)的支付协议生成支付二维码,并在自助售卡充值终端展示二维码,用户使用手机APP的“扫一扫”功能完成支付交易的技术。两种扫码支付技术都提供了完全公开的API开发接口,开发者可以自由查看,接口清晰。

微信支付和支付宝支付提供的扫码支付功能大同小异,在API接口方面,主要接口有,统一下单接口、支付结果通知接口、查询接口、下载账单以及相关的退款接口等,总体功能和流程基本一样。不过也有一些细微差别,比如:

图1:系统结构图

(1)在微信支付中叫做扫码支付,而在支付宝中属于“当面付”下的产品。

(2)微信扫码支付的商户平台中有三个账户,基本账户(存放用户交易转入的资金)、手续费账户和运营账户(手续费和付款的金额都从运营账户出),管理更加方便;而支付宝没有类似的账户分类。

(3)在API接口上面也有一些差异,比如微信支付通过“指定支付方式”来限制信用卡支付,而支付宝的方式更加灵活,有“可用渠道”和“禁用渠道”(渠道列表主要包括:借记卡、信用卡、余额宝等)。

开发者可以选JAVA、.NET C#、PHP任意一种语言开发,快速接入自己的商业应用支付系统。本文以JAVA语言为例进行简单描述。

3 系统开通与设计

在开发扫码支付之前,首先要成为扫码支付系统提供商的开发者,取得APPID(应用开发者ID),然后,与提供商签订相关的商户协议,最后生成通信密钥证书后即可开始软件开发。其中,微信支付的通信密钥证书在微信商户平台下载;支付宝的证书由开发者自己生成,然后上传给支付宝平台。

为了实现扫码支付功能,需要建立自助终端后台服务系统,结构图参见图1。

用户在自助售卡充值终端选择商品或者充值金额后,终端向后台系统发起请求,后台服务系统调用扫码支付系统的统一下单API接口,返回二维码链接URL,后台服务系统将该URL下发给自助终端,自助终端调用二维码转换器生成二维码并展示给用户,用户用手机“扫一扫”二维码,输入支付密码并完成支付,最后扫码支付系统将支付结果通知自助终端后台服务系统。支付后,终端通过一卡通充值系统完成对IC卡的充值。

在系统安全性方面,网络间通信采用HTTPS安全套接层传输协议,确保整个交易通信过程处于安全保护状态,通信密钥证书具有不可抵赖等安全特性。

4 功能实现

自助售卡充值终端提供售卡和充值等功能,下面以微信支付为例介绍系统流程以及API接口,具体的支付流程如图2。

4.1 发起预支付请求,生成二维码

用户在自助终端上选择好商品以后,自助终端后台系统调用“统一下单接口”向扫码支付系统发起预支付请求,具体接口API为:

把二维码数据保存成文件code.png文件或者直接在自助终端界面上显示。

4.2 系统收到支付成功结果通知

发起预支付请求时设置了notify_url异步通知地址,当用户支付成功以后,支付系统会向该地址发送成功请求,系统需要编程实现对请求数据的采集,并应答成功的信息。系统使用wxpayresult.jsp页面来接收支付系统发来的数据,实现如下:

图2:自助终端扫码支付流程

5 结语

微信支付或者支付宝等扫码支付为商户开发者提供了功能完善的API接口,商户结算对账流程也方便快捷,可实时查看每笔交易的状态以及资金的使用和到帐等情况。通过在自助售卡充值终端中使用扫码支付服务,可让乘客体验到更加便捷的城市一卡通服务,也可为城市一卡通公司或者自助服务运营商大大节约服务点的人工成本。

猜你喜欢

充值扫码开发者
脐橙连上物联网 扫码便知“前世今生”
山之高
奇妙的智商充值店
中国进入“扫码”时代
充值
扫码看直播
基于NFC的ETC卡空中充值服务应用系统实现
iOS开发者调查
iOS开发者调查
栝楼产业开发者谢献忠