浅谈支付系统开发的基本流程

2024-02-15
来源:网络整理

前言

大家好,好久不见,我是,今天我们来聊聊支付系统。

支付系统是每个系统必备的模块之一,也是众多模块中最核心的功能。 如果支付出现问题,就意味着将直接影响产品收益,事故严重程度也会很高。

本篇我们讲一下支付系统的基本流程,分别是支付、通知(包括同步通知、异步通知)、查询、退款和对账。 下面是本文使用的流程交互图。

支付系统开发_支付系统开发流程_开发支付系统多少钱

支付

开发支付系统多少钱_支付系统开发_支付系统开发流程

我们先来说说发起付款之前需要做什么

用户选择想要的产品后,首先我们创建一个订单,创建订单的基本信息,比如产品的名称、价格、数量、用户的收货地址等,然后就是我们后面需要的参数。 其次,如果系统中集成了多种支付方式的话,我们会有一个收银页面,供用户选择使用某种支付方式来完成支付,比如支付宝、微信、银联等。用户完成选择后,我们根据第三方支付系统要求的参数进行组装,并向第三方发起支付。 请求一般需要的信息包括订单号、产品名称、价格、同步&异步通知地址,有些支付方式还需要用户的收货地址、用户的银行卡信息(卡号、CVV、日期),当然还有用户隐私信息需要进行加密传输。 简而言之,三方支付系统需要什么,我们就传输什么。 一切准备就绪后,我们通过提供的三方支付系统发起付款。

支付系统开发流程_支付系统开发_开发支付系统多少钱

无论用户支付成功还是失败,三方都会给我们至少一个同步通知。 那么我们首先来了解一下什么是同步通知。

如上图所示,当第三方系统确认用户完成支付后,会根据我们支付时提供的通知地址发起POST或GET请求直接跳转回本站。 该请求将伴随第三方向我们传输一些关键交易。 信息,如果是移动终端,这种通知会在支付调用的回调结果中通知。 大致参数包括我们传输的大部分信息、交易状态、第三方交易号、签名(用于双方系统验证来源)以及一些可能暂时未使用的信息。 当我们收到返回的数据时,我们会首先进行验证,以确保不是欺诈请求。 验证的内容无非就是双方系统确定的签名算法,以及一些关键字段,比如金额是否匹配等。 等待。 我们不能完全信任第三方系统发送的信息。 我们收到通知后,如果第三方系统提供了查询接口,我们仍然需要查询第三方订单交易的关键信息,以确保支付确实顺利完成。验证完成后,订单后续会根据您自己的系统逻辑进行传输。

支付系统开发流程_支付系统开发_开发支付系统多少钱

了解完同步通知后,我们再来看看异步通知。 有些朋友很困惑。 有同步通知,那为什么还需要异步通知呢? 你可以暂时理解为同步通知实际上完成了支付过程。 这是即时通知。 在此过程中,第三方系统也暂时认为支付已完成,但如果出现异常或者用户在第三方秒内退款或申诉,我们的流程就会受到影响。

如上图所示,第三方系统一般也需要归档。 系统完成所有验证并确保交易安全后,将交易添加到数据库中。 至此,整个支付流程就完全完成了。 这时,第三方会通过我们提供的异步通知地址(有时异步和同步通知是同一个地址)通知我们支付确实已经完成。

我们收到第三方后,仍然会先进行验证,防止请求欺诈,然后确保信息的正确性。 我们还是请求查询接口。 异步通知和同步通知最大的区别在于,我们保证信息完整正确后,需要发送给第三方系统返回一个双方系统都同意的值,可能是=200,或者写成200或已完成等。不同的第三方系统有不同的要求。

退款

支付系统开发_支付系统开发流程_开发支付系统多少钱

如果您购买,您将获得退款。 退款占了支付模块逻辑的一半。 大致流程和付款没有太大区别,如上图所示。

但在大多数第三方系统中,退款结果一般都是通过HTTP返回,并且没有同步通知。 我们根据用户发起退款的产品金额创建退款订单,并在组装必要的参数后,请求三方信息以完成退款申请。 ,注意是退款申请。 为什么是申请退款而不是退款? 这其实是一个时效性问题。 一般退款不是实时的,因为第三方系统下面可能有一个链接(比如下面可能连接的银行),所以退款需要自动审批或者通过链接手动审批。 ,整个链接确认可以退款后才能完成退款。

支付系统开发流程_开发支付系统多少钱_支付系统开发

因为是非实时的,所以没有同步通知,但是大多数系统都有异步通知。 当第三方系统确认退款完成后,会根据我们发起支付时传输的异步通知地址通知我们退款完成,并携带必要的参数。

我们收到后,还是先进行验证,防止诈骗。 那么我们仍然需要通过第三方提供的查询接口来查询退款状态,并根据我们自己的系统逻辑完成退款完成标记并通知用户。

当然,如果没有异步通知,我们可以使用查询接口,通过延迟队列、失败队列重试或者定时脚本,不时向第三方请求退款结果。

和解

付款或退款完成后,事情还没有结束。 我们应该定期提取账单。 大多数第三方系统都会提供账单等接口。 获取账单后,我们需要将我们的系统数据与第三方系统数据进行比对,以确保每笔交易的金额、交易时间、交易状态完全正确。 当你遇到错误时,你应该寻找问题所在。

只有对账完成后,整个交易才能正确完成,否则你公司的财务迟早会找你的错,到时候这件事就不会像程序执行那么简单了。

致谢

谢谢您阅读此篇。 希望这篇文章可以帮助到您,谢谢。

分享