支付业务理解

乐云一
  • 业务
  • 业务
About 1222 wordsAbout 4 min

支付业务理解

参与的财务模块涉及到了支付业务,理一理自己的见闻

定义

支付业务的定义,我理解就是一种,

百分百确保数据的一致性的同时,完成用户对本次支付结果的收据。

一致,反馈,应该是一个支付业务中最重要的两概念。

流程

一个支付业务流程很短,

创建支付单 - 用户支付 - 同步支付信息 - 反馈支付结果 。

其中同步支付信息节点,会随着支付业务的复杂性几何增长。

比如我从支付模块发起支付,

一是需要同步支付模块的数据状态,

二是需要同步支付中心的数据状态,

三是需要同步第三方接口交接的数据状态。

.......

并且,还需要保证每一步的同步状态数据一致和不发生错误,所以需要大量的往返使用队列或是缓存的形式判断,其中 当银联【扣钱方】与我方数据有不同步的场景时,是最不好处理的。

即使单独拆开与银联的对账功能,也有一定的时效性的影响。

怎么支付

首先关注流程,

创建支付单开始:

要了解一个概念,无论是线上支付[支付宝、微信、云闪付]等等支付平台,还是post机扫描支付。

都是生成一条指向项目支付链接的link,所以创建支付单的过程就是通过创建支付单时给的用户信息、支付场景、服务单信息等,生成一个新的支付场景,并且设置这个支付场景的使用时间。

在使用时间阶段,用户即使再次发起支付请求也是返回同一个支付场景,当然随着支付信息的变动而变动。

而当使用时间过期,则会重新生成一个支付场景。

到了用户支付

相对于来说,用户支付是比较简单的,用户根据场景操作,进入到支付场景后。

由项目规定的场景中 [支付宝 或 微信啥的]进行相应扣款操作,

注意这个扣款是绝对的,也就是说用户扫码之后,支付,这个过程是不需要用户保证的,一切的后果责任都由项目本身承担。

所以用户支付是项目本身控制不了的。

来到 信息同步 阶段

既然用户支付我们是无法控制的,那么为了降低成本损失,就需要在信息同步上大耗篇章。

首先是第一步,在创建支付单时,会去判断本服务单支付情况,如果本支付单已经支付过了,则需要更新服务单支付状态,而创建支付单时一定由支付状态为否时进行。

第二步,确定是未支付单,进行支付操作,一般由支付中心包装本次链接上的支付金额、服务单、支付时间等支付信息与银联第三方接口进行联调,验签

第三步,银联发送消息,我们无法控制,只能被迫消费。所以在接受到银联的消息后,需要,确认金额一致,订单一致等重要信息,随后在支付中心侧进行订单记录,用来之后的对账功能。

第四步,支付中心发送本次订单情况消息,支付模块接受,同时也更新本订单的支付状态和与支付订单有关联的所有数据表。

第五步,....

大致信息同步有一个通性,接受消息,更新订单,反馈信息。

最后 反馈支付结果

由于支付业务的多样性,比如一些平台需要支付获得产品,或者支付进行记录等等,反馈结果随着业务的不同变化。

困惑点

在整个支付流程中,会发现消息的重要性。

那么怎么确保消息一定能正常使用

二是关于支付收款过程,

如果我最后在支付时间的最后一秒支付,但是程序运行速度超过了一秒,那么用户将获得一个全新的支付场景。

那么如果这次支付场景成功,上一次的支付成功将如何处理,或者说这次怎么控制用户能否支付。

还有就是与银联的数据对接,如果银联的数据出现问题,是将本次订单返回给银联,还是说进行单订单的对账操作,在支付中心侧同步信息。

...

Last update:
Contributors: leyunone
Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v2.14.7