统一支付结算平台系统方案 V1.0:详细解析与应用

2024-09-06
来源:网络整理

统一支付结算平台系统解决方案 PAGE 支付结算平台系统解决方案 统一支付结算平台系统解决方案 版本:V1.0 文档号 保密等级 作者 最后修改日期 2020/5/6 审阅人 最后批准日期 审批人 最后批准日期 深圳市瑞丰科技有限公司 2020 年 4 月 修订记录日期 版本 修订说明 修订人 2020/3/15 V1.0 初稿 统一支付结算平台系统解决方案 Page PAGE 151 / 共 25 页 版权归深圳市瑞丰科技有限公司所有 目录 TOC \o 1-3 \h \u 目录 2 1 平台概述 1 4767 1.1 平台介绍 1 1.2 背景分析 1 1.3 需求分析 1 7907 1.4 建设目标 2 1.5 建设效益 2 2 业务场景 3 2.1 维护资金分配3 1394 2.2 维修基金支付 3 2.3 购房基金归集 3 4627 2.4 租户租金支付 3 1900 2.5 4 业务流程 4 3 平台架构解决方案 6 3.1 平台模型图 6 3.2 交互图 6 8403 3.3 平台架构 7 4 核心支付解决方案 8 4.1 解决方案概述 8 4.2 网关服务 9 4.3 渠道服务 9 4728 4.4 支付流程 11 4.4.1 非银行借记 11 4.4.2 银行借记 13 1965 4.5 非银行借记业务流程 14 8804 5 平台网站解决方案 15 5.1 功能模块 15 5.2 业务流程 16 6 平台接入解决方案 17 6501 6.1 数据通讯 17 6.1.1 通讯模式17 6.1.2 接口签名 17 6.1.3 消息定义 17 6.1.4 数据类型 18 6.1.5 符号约定 18 6.2 访问方式 18 6.2.1 标准API 19 7926 6.2.2 标准SDK 19 8558 6.3 访问流程 19 6568 6.3.1 流程概述 19 6.3.2 银行扣款 20 4080 6.3.3 非银行扣款 21 4367 6.4 访问规范 22 6.4.1 接口调用 22 6.4.2 异常处理 23 6.4.3 支付体验 23 6.4.4 资金安全 24 6.4.5 避免单边账务 24 平台概述 平台介绍 支付结算平台作为银行和第三方支付平台服务的延伸,聚合了支付清算平台的各项功能,为用户提供支付结算解决方案。整合多家银行及第三方支付平台的能力,提供多渠道支付方式,简化付款人的支付连接。

各支付渠道提供的支付能力应用到不同的业务场景,支付宝、微信、银联等渠道提供快捷支付方式,如维修基金代收、业主生活缴费、租客交租金等小额支付;银行直销渠道主要用于维修基金拨付、重点基金提取、非重点基金提取等;银街通分为代收业务和支付业务,代收业务可以代收电费、水费、移动通讯费等,支付业务可以支付工资、保险费等。背景分析近年来,国内现代支付结算体系逐步完善并受到越来越多的重视,全国性、区域性、行业性的支付结算体系纷纷涌现,在支付领域更是出现了不断丰富、直接、无根基的银行对外结算渠道电子支付方式。建立支付网关(结算平台),为了更好的推动全国各省市房管云平台、政务合作平台产品线,实现对外实施统一的支付结算能力,基于新疆房产结算平台和银捷通结算流程,建设新型支付结算平台。需求分析现有结算平台存在的问题:1、接入成本较高;2、支付渠道单一,没有支付宝、微信等第三方支付渠道;3、没有交电费、水费、移动通讯费等日常费用的功能。新型支付结算平台的优势:1、为接入系统提供一站式支付接入,支付由接入系统发起,落地于支付机构和银行。2、通过系统调用将接入系统的支付、查询、退款信息传递给支付机构和银行。

建设目标整合现有外部支付渠道,管控外部支付渠道;为各类支付业务及相关单位提供结算通道服务;实现前台跨业务系统、交易产品、币种统一支付处理,支持多渠道接入;支持新支付业务品种快速定制部署;努力降低扩容、修改、测试对各银行系统运维的影响。建设效益提高平台合规性和安全性、资金周转率、使用效率;降低各类产品资金结算业务对接成本,快速实现支付功能;帮助企业买卖双方解决支付结算难题,降低全行业交易成本,提高对账效率,提高会员活跃度和会员粘性,保障业务持续增长。业务场景修缮资金拨付物业、居委会、业委会需要进行工程修缮公共设施,要聘请施工队进行修缮,首先需要到房管局登记修缮范围、补助金额。补助款会汇到施工方账户,施工方收到钱后进行修缮。物业、居委会、业委会、柜台工作人员通过系统录入需要申请的信息并申请业务。业务在审批过程中,通过银行扣款支付将付款信息发送给银行,银行自动处理转账。此场景只适合银行扣款支付。一个区或县会有一个维修资金专户,业主需要缴纳的房屋维修资金全部汇到此卡上;物业、居委会、业委会、柜台工作人员通过系统录入需要申请的信息并申请业务。业主可以自行到房管局办理支付,也可以联系开发商工作人员到房管局代交;业主或缴费代理人到房管局缴费时,可以通过支付宝扫码缴费、微信扫码缴费、支持银联标准的APP扫码缴费、银行APP扫码缴费,此场景只适合非银行扣费缴费方式。

取得商品房预售许可证后,房地产开发商销售商品房所取得的购房款全部须直接存入资金监管专户。买房人付款时,开发商需要进入预售资金归集页面,选择需要归集的网上合同及金额,系统会生成包含订单号、监管账号、金额信息的二维码。买房人购房时需要通过POS机扫码支付,将款汇入开发商提前开立的资金监管专户。由于房款为大额,支付宝、微信支付等支付方式不支持大额支付,因此购房资金归集只适合银行直销渠道POS机扫描支付。房客租金支付房客在规定时间内到房管局柜台让工作人员为其缴纳房屋租金;租客付款时,可以通过支付宝、微信、支持银联标准的APP扫码支付、银行APP扫码支付、POS扫码支付。扣款成功且房管局专用账户收到钱后,银行会调用直销银行通道中的到账通知接口,发送银行流水给房产系统。以支付维修资金为例,业务流程如下:描述:收银员展示二维码后,业主可以打开支付宝、微信、支持银联标准的APP、银行APP进行扫码支付。业主扫码后,手机显示支付路由界面,在支付路由界面业主也可以选择其他支付渠道,默认选择当前用户扫码APP对应的支付渠道。支付路由界面上有立即支付按钮,业主点击立即支付按钮后,向支付结算平台发起支付请求。支付结算平台后台判断用户扫码APP是支付宝、微信、支持银联标准的APP,还是银行APP,然后选择相应的支付渠道,转发支付请求。

下图为小票支付路由界面,仅供参考: 平台架构解决方案 平台模型图 交互图 平台架构 平台架构包括统一接入平台、统一支付网关、支付核心、基础数据等模块,如下图所示。 服务渠道:付款人可以通过业务系统、APP、微信、支付宝、小程序等渠道使用支付结算平台。网站属于支付结算平台,主要提供给接入支付结算平台的业务系统进行支付通道参数和开发信息配置。 统一接入平台:平台提供两种方式供接入系统选择接入:标准API接口和标准SDK。 统一支付网关:支付网关主要实现API路由、接口安全、签名校验等功能。 支付核心:完成支付、查询、退款三大基本功能;支付渠道有三种,分为支付宝微信快捷支付、银行支付、收付款。 基础数据:基础数据提供平台所需的一些基础信息。核心支付解决方案 方案概述 由于接入系统有不同的用户,例如房产系统有开发商、房管局、物业等用户,接入系统无法代表收款人,所以需要将接入系统和收款人区分开来。 接入系统将订单信息以订单的形式发送给支付结算平台,订单信息以外的参数由支付结算平台在转发支付宝、微信或者银联时封装好;APP扫码支付的订单信息基本一致,而银行扣款的订单信息必须包含付款方和收款方账户信息。 APP扫码支付的订单信息包括接入系统、收款方单位号、订单号、订单名称、产品描述、订单金额、支付渠道、前端回调地址、后端回调地址。

是接入系统在支付结算平台创建应用时获取的唯一标识。前端回调地址用于收款人支付后向付款人展示支付结果,后端回调地址用于支付宝通知接入系统支付结果。由于接入系统可以支付不同的收款人,支付结算平台需要识别接入系统发送的每笔订单对应的收款人,因此每笔订单都需要有一个与收款人对应的标识,即收款人单位号。支付结算平台根据订单中的单位号查找支付结算平台配置的渠道参数找到对应的收款人信息。扫码支付可以通过异步通知或者查询订单状态获取支付结果,但网络问题可能导致异步通知无法到达。接入系统需要调用交易查询接口进行查询,根据查询接口获取交易和支付信息。为了简化开发,降低复杂度,支付结算平台统一提供了查询订单状态获取支付结果的方式。在支付系统中,支付网关与支付通道之间的连接是最核心的功能。其中,支付网关是对外提供服务的接口,所有需要通道支持的资金操作都需要通过网关分发到相应的通道模块,支付通道模块接收网关的请求,调用通道接口进行真正的资金操作。各个通道的接口和传输方式都是不一样的,所以在这里,支付网关相对于支付通道模块的作用类似于设计模式中的装饰设计模式,封装了各个通道之间的差异,并呈现给外部系统统一的接口。

网关服务 网关服务为接入系统提供统一的API,无论接入多少个支付渠道,都制定标准的输入输出参数,统一接入系统提交的业务请求。通道网关层负责接收支付业务请求,响应及验证接口参数,防止接口被攻击,不负责具体的业务逻辑处理。 1.验证签名。签名也是为了防止支付接口被伪造,签名使用分发给接入系统的密钥对拼接成输入参数的字符串进行MD5加密,然后作为参数连同其他参数一起提交给服务器。 2.验证输入参数中各个字段的有效性,如收款机构代码、接入系统应用ID、价格、返回地址等参数。 3.验证账户状态。交易主体、交易对手及其他账户的状态为可交易状态。 4.验证订单。如果涉及到预购,还需要验证订单号的有效性,订单状态为未付款,为了防止用户缓存某个URL地址,还需要验证下单时间和付款时间是否超出预定间隔。5、渠道选择。根据接入系统提供的支付渠道标识,选择合适的支付渠道。路由服务只负责支付渠道的选择和分发,不负责具体的业务逻辑处理。路由服务会有很多的判断,技术实现可以选择工厂模式+策略模式或者规则引擎。简单路由可以使用工厂模式+策略模式,复杂路由使用规则引擎。渠道服务的每个渠道都是一个独立的服务,这样某个渠道服务出现问题不会影响其他渠道服务。

渠道服务实现与第三方支付机构或者银行的API对接,提供原子支付服务API接口。主要渠道有支付宝、微信、银联、直销银行、银捷通。银捷通渠道和直销银行渠道,银行账户扣款账户需要签约才能交易,支付时不需要输入密码,将支付信息提交给银捷通或者银行。其他支付渠道,付款人需要输入支付密码才能完成支付。支付渠道支付能力应用场景描述支付宝扫码支付支付宝APP扫码业务系统在前台展示支付二维码,付款人使用支付宝APP扫码支付。网页支付移动端网页付款人手机进入支付宝支付网页。微信支付扫码支付微信APP扫码业务系统在前台展示支付二维码,付款人使用微信APP扫码支付。网页支付移动端 网页付款人手机进入微信支付网页。 支持银联标准的银联扫码支付APP 付款人只需要使用支持银联标准的APP,通过持卡人扫码功能完成支付。 网页支付移动端 网页付款人手机进入银联支付网页。 银行账户扣款支付信息提交给银行账户支付,银行根据支付信息扣除支付信息。 直连银行POS机 扫码支付POS机 付款人使用POS机刷卡支付。 银行账户扣款支付信息提交给银行,银行根据支付信息扣除支付信息。 银行APP支付 使用银行APP扫码支付 商户系统在前台显示支付二维码,付款人使用银行APP扫描二维码完成支付,如招商银行APP、工商银行APP。

支付流程的接入系统首先下单到支付结算平台,然后支付结算平台向第三方支付后台请求,接入系统通过轮询查询获取支付结果。非银行扣款扫码支付流程。业务系统首先下单到支付结算平台,支付结算平台返回一个二维码,二维码内容为支付结算平台支付路由接口的链接。付款人扫码后,付款人手机进入支付路由接口,付款人点击支付按钮后,支付结算平台调用支付通道对应的第三方支付平台或银行的支付接口。第三方支付平台返回一个表单,即输入支付密码的接口,然后付款人输入密码进行支付。付款人支付后在手机上就可以看到支付结果,业务系统需要调用轮询接口获取支付结果。扫码支付流程图说明:步骤a到步骤d为一个循环过程。接入系统后台收到支付结算平台返回的二维码,接入系统发起轮询获取支付结果:等待3秒后,通过支付时传入的订单号,调用交易查询接口查询支付结果。若还是返回等待付款人付款,则再等待3秒继续查询,直到返回准确的支付结果或者超出轮询时间。若最后一次查询还是返回收款人等待付款,则必须立即调用交易取消接口取消交易,防止收款人继续支付。移动网页支付流程。业务系统下单到支付结算平台,收款人手机进入支付路由界面,收款人点击支付按钮后,支付结算平台调用支付通道对应的第三方支付平台或者银行的支付接口,第三方支付平台返回一个表单,即输入支付密码的界面,然后收款人输入密码进行支付。收款人支付后可以在手机上看到支付结果,业务系统需要调用轮询接口获取支付结果。

移动网页支付流程图说明:步骤a到d是一个循环的过程,接入系统后端收到支付结算平台返回的二维码,接入系统发起轮询获取支付结果:等待3秒后,通过支付时传入的订单号,调用交易查询接口查询支付结果,若仍然返回等待付款人支付,则再等待3秒继续查询,直到返回准确的支付结果或者超出轮询时间。若最后一次查询仍然返回等待付款人支付,则要立刻调用交易取消接口取消交易,防止付款人继续支付。 银行扣款 对于银行扣款支付方式,只需要向银行提交支付信息即可,付款人不需要输入支付密码,银行自动处理,实时支付时,银行会同步返回支付结果。支付流程如下图所示: 直银实时支付流程图 银行对接实时支付流程图 非银行扣款业务流程 平台网站解决方案 支付结算平台网站主要包括开放平台、接入平台、运营平台三大模块。 功能模块 业务流程 平台接入解决方案 数据通讯 通讯方式使用协议进行交互。 通过post方法提交消息信息,请求参数为XML字符串形式。 支付结算平台需要验证接入系统发送的签名是否正确;接入系统收到响应的时候,也需要验证签名是否正确,如果接入系统不能正确验证签名,就会存在潜在的风险。 接口签名 为了交易安全,接入系统与支付结算平台之间的交易数据必须使用MD5算法进行签名加密,接入系统在支付结算平台网站创建应用的时候会获取MD5密钥,每个应用的MD5密钥都是不一样的。

签名流程: 1、将参数按照key排序,然后在末尾链接起来,形成类似a=1b=2c=3的字符串str。 2、用签名key对上述字符串str进行签名,生成签名。 3、将sign和它的合并到请求参数中,发送请求到服务端。 签名验证流程: 1、将收到的参数取出,首尾连接起来,形成a=1b=2c=3的字符串str。 2、用签名key对上述字符串str进行签名,生成签名。 3、比较参数是否相等。 消息定义 请求和响应消息内容采用XML字符串风格,消息统一格式如下: xml key1![[]]/key1 key2![[]]/key2 key3![[]]/key3 key4![[]]/key4/xml 数据类型 (m,n):表示变长字符串类型,长度从m到n可变。 (m):表示定长字符串类型m为整数值。(m,n):表示带精度的数值类型,m表示数值位数,范围为1到m,n表示小数点后的位数。

(m):表示整型值类型。m表示值的长度,为1~m。注意:m和n都是整型值。 符号约定 在下文出现的接口描述中,“状态”栏中的值含义如下。 符号 请求方约束 服务约束 M 必须包含字段 必须验证字段的存在性及内容的合法性 C 若条件成立 必须包含字段 当条件成立时,必须验证字段是否存在 当字段存在时,必须检查其内容的合法性 O 该字段为选填 当字段存在时,必须检查其内容的合法性 访问方式 支付结算平台提供标准API接口、标准SDK两种访问方式,支付结算平台的支付能力分为银行扣款和非银行扣款两大类。支付宝支付、微信支付、银联支付、银行直销APP扫码支付、银行直销POS机扫码支付属于非银行扣款支付,银联通和银行直销银行账户扣款支付属于银行扣款支付。由于银行扣款支付的订单信息差异较大,而非银行扣款支付的订单信息基本一致,因此银行扣款类型提供相应的支付API接口和SDK,非银行扣款类型提供统一的API接口和标准SDK。无论是支付宝支付、微信支付还是银联支付,都使用同一套API接口和标准SDK;可以在订单信息中添加支付渠道标识参数,支付结算平台根据订单信息中的支付渠道标识判断应该使用哪种支付渠道。标准API支付结算平台将所有支付渠道封装起来,提供基于Http协议的API接口供外部访问,接入系统需要调用相应的API接口;接入系统可以通过前台或后台调用接口。如果接入系统采用该方法,需要自行实现签名方法、消息转换方法和Http客户端方法。

接入系统进入支付路由接口后,付款人选择一个支付通道进行支付,支付结算平台根据通道标识调用相应的支付通道接口转发支付信息。标准接入比API接口接入简单,但只能在后台调用。SDK只封装了API接口,SDK内部实现了签名方法、消息转换方法和Http客户端方法,接入系统只需要调用接口和签名验证方法,不需要考虑如何实现签名验证方法、如何转换消息、如何将交易数据发送给支付结算平台。同样,接入系统进入支付路由接口后,付款人选择一个支付通道进行支付,支付结算平台根据通道标识调用相应的支付通道接口转发支付信息。接入流程概述接入系统接入支付结算平台需要在支付结算平台网站注册一个账号,并获取一个密钥,密钥用于接入系统和支付结算平台之间加密和解密交易数据。对于非银行扣款的支付,需要收款方相应渠道参数配置。接入系统通过接入支付结算平台可以一次性接入支付宝、微信、银联、直销银行、银捷通支付方式。收款方支付宝、微信、银联需要向相应官方渠道申请支付权限,并将相应渠道参数提供给接入系统管理员,接入系统管理员在支付结算平台上配置收款方的支付渠道。什么是支付渠道参数?是指收款方支付宝、微信、银联向相应官方渠道申请支付权限,调用其支付接口时,官方需要的一些参数,这些参数有key,有账户的唯一标识。

支付结算平台需要有相应渠道提供的参数才能调用这些接口,所以收款方需要将这些参数提供给接入系统管理员在支付结算平台上进行配置。支付宝支付、微信支付、银联支付、直销银行APP扫码支付、直销银行POS机扫码支付属于非银行扣款支付,银联通、直销银行账户扣款支付属于银行扣款支付。外部系统如果想接入支付结算平台,首先要登录支付结算平台提供的网站注册一个账号,账号就是接入系统在支付结算平台的身份。支付结算平台提供了标准API接口和标准SDK两种接入方式,外部系统可以根据情况选择接入方式,如果选择标准SDK接入方式,需要下载支付结算平台提供的SDK并集成到接入系统中;如果选择标准API接口接入方式,只需要按照文档描述调用相应的API接口即可。对于扣除付款,订单包含付款人的帐户信息,付款人的付款密码不需要在收到订单信息之前签署帐户ER需要输入付款密码,并需要配置付款通道参数。

接口(1)确保可以及时获得收款人的付款结果:如果访问系统无法及时确认收款人的付款是否成功,则很容易造成资产损失和争议。 ,当前订单的状态必须通过相同订单的部分退款确认,请确保不重复退款号码:如果退款号码不更改,则部分退款将失败,由于请求编号冲突,因此请求的是相同的交易,目前,业务处理结果未知。特定的措施如下:取消接口呼叫例外:如果返回了一个分钟,则需要记录异常的情况。已知的例外情况仍需要记录,需要遵循手动处理过程。

如果发生网络时间或未知的例外,请查询超时或未知的例外情况,需要记录异常的交易,并且需要遵循手动处理过程,因此不能简单地推断出付款的付款方式。付款结果是,如果投票时间太长,则将进行不必要的资源消耗,而服务器的性能将减少,如果投票时间太短。 。原因:付款失败会导致访问系统的问题,增加付款人的付款方式,并减少付款人的满意度:如果付款失败的率很高。 。将自动关闭。原因:退款接口用于普通的退款业务,当订单有问题时,取消接口将取消和关闭订单

分享