支付系统设计:收银台设计一

news2024/11/24 12:30:12

文章目录

  • 前言
  • 1. 收银台前端页面
    • 1. 1 收银台的业务场景
    • 1. 2 同应用不同支付场景下的收银台
  • 2. 商户平台配置管理
    • 2.1 配置流程
    • 2.2 支付工具列表配置
    • 2.3 支付配置
    • 2.3 支付银行配置
  • 3. 系统处理流程
    • 3.1 下单流程
    • 3.1 拉起收银台流程
  • 总结


前言

收银台即用户日常付款前选择支付方式的页面,是支付平台提供的基本功能之一,主要职责是协助业务平台完成支付交易,向用户提供一致的交易体验。一般情况下,根据不同终端类型定制标准化的收银台给到外部进行调用,保证各终端体验一致且针对各端特定需求、场景来展现不同的支付方式。

公司内部往往有多条业务线,凡是商业活动一定涉及收款,支付系统扮演平台的角色,为多条业务线提供收款能力,接入的业务线我们称之为商户。支付平台向商户提供C端支付产品和B端商户平台两种类型的支付产品。商户接入一种C端支付产品向用户提供支付服务,同时使用B端商户平台向C端支付产品进行功能配置,这样商户就具备了收款能力。

整体上可分三块:收银台前端页面运营平台和看不见的支付系统,当然所涉及到的系统远远不止这些。

如下是收银台主干处理流程,不同公司也会有所不同:
在这里插入图片描述
本篇将讲解一种使用B端商户平台对C端支付产品进行功能配置的实现方(图:0/7/8/9/10/11步骤),也是最直观的一部分,当我们提交支付单跳转到收银台,页面展示的支付方式、支持的银行卡以及已经绑定的银行卡怎么来的。


1. 收银台前端页面

1. 1 收银台的业务场景

一般分为付款充值两部分:

付款即通过各类支付方式针对业务订单发起付款,例如:用户在淘宝购买一部手机,确认订单后自动跳转至支付宝,引导用户选择对应的方式(余额、花呗、银行卡等)进行付款。

充值即用户对账户进行余额充值,例如:用户登录支付宝、微信或其他商户自有钱包系统对账户余额进行充值。

如下是我们在京东商城购买商品时候的支付流程,对于多数人是再也熟悉不过的操作流程了。
在这里插入图片描述
不管京东还是淘宝,收银台支持的支付方式类型都是比较丰富的,一般小网站只接入支付宝和微信支付基本就能满足需求了,但是大的电商平台面对的用户量很大,所以要提供多样的支付方式满足各种需求,复杂的东西也都是慢慢由简迭代过度过来的,本篇从简单的分析。

1. 2 同应用不同支付场景下的收银台

中大型公司,一般不止一个APP应用,并且同一个APP应用也不止一个支付场景,并且在不同的支付场景中所支持的支付方式也有所不同,如某个公司的收银台如下:
在这里插入图片描述
如上为一家公司的两个APP不同支付场景下的收银台,可以看到,在不同APP中的不同支付场景下收银台的支付方式也是有所不同的,这种不同是怎么实现的,

2. 商户平台配置管理

2.1 配置流程

运营人员(产品经理)开通产品收银台使用权限,配置流程如下:
在这里插入图片描述

2.2 支付工具列表配置

在这里插入图片描述

2.3 支付配置

将收银台支付工具列表进行组合为支付产品对外开放:
在这里插入图片描述
对于有快捷交易的支付工具需要配置所支持的银行列表信息:
在这里插入图片描述

2.3 支付银行配置

配置快捷支付支持的银行以及限额,看到限额是不是就和上面京东的收银台银行卡下显示的限额对应上了。
在这里插入图片描述

3. 系统处理流程

用户使用收银台时系统处理流程:
在这里插入图片描述

3.1 下单流程

业务系统在拉起收银台之前先请求CashierApi系统-->交易系统进行下单,下完单之后,会响应如下对象:

/**
 * @author  Kkk
 * @Describe: 主动支付下单响应VO
 */
public class AuthenResultVO{
    /** 用户唯一标识 */
    private String uniqueId;

    /** 准入令牌 */
    private String accessToken;

    /** 秘钥 */
    private String secretKey;

    /** 令牌剩余时间 */
    private Integer expireSeconds;
   //... ...
}

核心字段:accessToken,业务系统拉起收银台时候只需要在http请求的Header传这个准入令牌 就行了,如果是有参数的场景将使用secretKey加密后再传输。

3.1 拉起收银台流程

下单时CashierApi系统会将订单信息存入到Redis中,所以业务系统拉起收银台后收银台前端系统会传入accessToken到后端,后端会查询原订单信息,原定单信息有产品信息,以及用户信息,根据产品信息就能够查询出来支持的支付方式了,根据用户信息就能知道用户绑定的卡了。
然后过滤支付工具等,即接下来流程就走上图用户使用收银台时系统处理流程了。流程比较简单在此不再展开,后面会有专门博客来介绍这块具体代码落地,这块设计性还是比较强的,将介绍怎么构建Checker校验链以及Resolver来简化代码编写。


总结

拙技蒙斧正,不胜雀跃。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/417971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

革新设计,小巧强大,水库保卫无忧!

水库安全运行事关广大人民群众生命财产安全,为规范水库管理,落实水库预报、预警、预演、预案措施,提升水库信息化管理水平,保障水库安全运行。水库大坝是重要的国民基础设施,承担着防洪抗旱,节流发电的重要…

新规拉开中国生成式AI“百团大战”序幕?

AI将走向何方? ChatGPT在全球范围掀起的AI热潮正在引发越来越多的讨论,AI该如何管理?AI该如何发展?一系列问题都成为人们热议的焦点。此前,马斯克等海外名人就在网络上呼吁OpenAI暂停ChatGPT的模型训练和迭代&#xf…

SGAT丨单基因分析工具SingleGeneAnalysisTool

Single Gene Analysis Tool 简介:SGAT是一个免费开源的单基因分析工具,基于Linux系统实现自动化批量处理,能够快速准确的完成单基因和表型的关联分析,只需要输入基因型和表型原始数据,即可计算出显著关联的SNP位点&…

学习大数据需要什么语言基础

Python易学,人人都可以掌握,如果零基础入门数据开发行业的小伙伴,可以从Python语言入手。 Python语言简单易懂,适合零基础入门,在编程语言排名上升最快,能完成数据挖掘、机器学习、实时计算在内的各种大数…

测试名词介绍

测试名词介绍一:敏捷测试1. 定义:2. 敏捷测试的核心:3. 敏捷测试的8大原则和传统测试的区别二:测试名词介绍瀑布模型回归测试Alpha测试Beta测试性能测试白盒测试黑盒测试灰盒测试三:测试流程单元测试 (unit test)集成测…

Java RSA加解密算法学习

一、前言 1.1 问题思考 为什么需要加密 / 解密?信息泄露可能造成什么影响? 二、 基础回顾 2.1 加密技术 加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再…

nginx的前端部署方式

1. 什么是nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。 由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接, 并且cpu、内存等资源消耗却非常低&#xff0…

javascript 数组详解

1.数组是可变的 数组内元素可以是不同的类型: 字符串一旦创建就不可变,但数组是可变的,且操作起来十分随意,例如: 直接修改数组长度,若新赋予长度小于原数组长度,会直接舍弃多余元素: 若新赋予…

【AI绘画】Midjourney和Stable Diffusion教程

之前我向大家介绍了这两个AI绘画网站: Stable Diffusion介绍: https://mp.csdn.net/mp_blog/creation/editor/130059509 Midjourney介绍: https://mp.csdn.net/mp_blog/creation/editor/130003233 前言 这里是新星计划本周最后一篇,主要…

python 连接oracle

前提,navicate成功连接oracle 1、下载cx_oracle,根据python版本下载whl,或者通过 ​pip install cx_Oracle -i http://pypi.douban.com/simple/ 下载地址: cx-Oracle PyPIhttps://pypi.org/project/cx-Oracle/#files2、navicate下instant…

​Auction Design in the Auto-bidding World系列一:面向异质目标函数广告主的拍卖机制设计...

导读: 传统拍卖机制不存在了!出价产品智能化成为行业发展趋势,自动出价(Auto-bidding)已成为互联网广告主营销的主流,经典效用最大化模型(Utility Maximizer)的假设已经不再能良好地…

使用 LXCFS 文件系统实现容器资源可见性

使用 LXCFS 文件系统实现容器资源可见性一、基本介绍二、LXCFS 安装与使用1.安装 LXCFS 文件系统2.基于 Docker 实现容器资源可见性3.基于 Kubernetes 实现容器资源可见性前言:Linux 利用 Cgroup 实现了对容器资源的限制,但是当在容器内运行 top 命令时就…

《金阁寺》金阁美之于幻想,我用摧毁它来成就其美

《金阁寺》金阁美之于幻想,我用摧毁它来成就其美 三岛由纪夫(1925-1970),日本当代小说家、剧作家、记者、电影制作人和电影演员,右翼分子。主要作品有《金阁寺》《鹿鸣馆》《丰饶之海》等。曾3次获诺贝尔文学奖提名,属…

基于Sketch Up软件校园建模案例分享

Acknowledgements: 由衷感谢覃婉柔、赵泽昊同学在本次课程实习中做出的巨大贡献,感谢本团队成员一起努力奋斗的岁月。 一、建模地点(中国地质大学(武汉)未来城校区图书馆周边) 中国地质大学(武汉…

关于ChatGPT的一些随笔

大家好,我是老三,最近几个月关于ChatGPT的信息可以说是铺天盖地。 “王炸,ChatGPT……” “xxx震撼发布……” “真的要失业了,xxx来袭……” “普通如何利用ChatGPT……” …… 不过老三前一阵比较忙,对ChatGPT…

【MySQL】锁详解——从结构分类到适用场景

我们要学习锁首先要了解下我们想了解的锁到底是什么🤔 而在MySQL中给某个数据加锁的本质其实就是在内存中创建一个锁结构与之关联,而这个锁结构就是我们常提到的MySQL的锁🔒 那么接下来的问题就是,这个锁结构长啥样呢&#xff1…

ASEMI代理ADI亚德诺AD8065ARTZ-REEL7车规级芯片

编辑-Z AD8065ARTZ-REEL7芯片参数: 型号:AD8065ARTZ-REEL7 −3dB带宽:145MHz 0.1 dB平坦度的带宽:7MHz 输入超速恢复时间:175ns 输出恢复时间:170ns 斜率:180V/μs 三阶拦截&#xff1a…

教育大数据总体解决方案(2)

系统管理对当前大数据基础平台的所有服务及组件版本、账户以及自动启动进行统一管理。 服务版本查看当前大数据基础平台的所有服务信息及版本状态。 服务用户和组查看当前大数据基础平台的所有用户信息。 服务自动启动对当前大数据基础平台的所有服务组件进行自启动设置。 后台…

【信息安全】EDR、HIDS、NDR、MDR、XDR 区别与联系

【前言】 随着安全态势的发展,为应对不同的安全防御场景需求,安全产品层出不穷,各大安全厂商也争先推出自家的安全产品/平台,这就导致产品种类繁多,信息量大而杂,本篇博文重点讲解EDR、HIDS、NDR、MDR和XDR…

LinuxGUI自动化测试框架搭建(二)- 详细设计框架设计

(二)-详细设计&框架设计1 需求分析2 技术栈3 框架设计3.1 框架说明3.2 框架执行流程4 预期结果4.1 测试过程log日志4.2 测试报告html格式4.3 测试报告邮件格式1 需求分析 对 实现需求 进行详细分析,主要有下: 功能说明使用U…