首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

整个支付流程你熟悉吗

关注一下又不会怀孕!

整个支付流程你熟悉吗

今天我们一起梳理下支付的整个流程,客户端和服务端如何配合完成一次支付请求,仅仅从整体架构上阐述,不会对支付系统内部进行拆解。

整体架构图如下:

跟着标注的序号,可以跟踪到一个支付请求是如何发起的,具体流程描述如下:

01发起支付请求

当客户端需要发起支付请求的时候,根据支付系统规定的参数,构造好一个新的支付请求队列;

02添加支付任务

开启一个支付任务,做的事情就是向KAFKA中添加一个新的支付任务,等待被消费;

03确认支付任务

一旦支付任务被成功创建,将会把接受支付请求的信息直接返回给客户端;

04消费支付任务

与此同时,支付系统对应的支付路由和支付网关消费对应的支付队列,完成支付任务;

05第三方支付请求

根据实际情况而定,如果平台涉及第三方支付渠道,则向第三方支付平台发起支付请求;

06返回支付结果

第三方支付平台返回支付的结果,根据具体的支付情况,可以是同步的也可以是异步的;

07缓存支付任务

一个支付任务完成(支付成功或者失败),可以将任务的执行结果(无论成功与否)缓存在 Redis 中,随时等待客户端的回访;

08查询支付结果

客户端在提交支付任务后,间隔一定时间后(建议3s),发起一个支付结果查询的请求;

09查询支付结果

支付系统根据客户端的查询请求向Redis 查找对应的支付结果;

10返回支付结果

Redis返回支付系统对应订单的支付结果;

11同步支付结果

异步将支付任务的执行结果同步到持久化数据库中,并删除 Redis 中缓存的任务执行结果。持久化到数据库主要是为后续的容错,重试,数据分析等提供落地的数据源;

12返回支付结果

支付系统将最终的支付结果返回给客户端。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180116G0DBB800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券