(微服务实战)预付卡平台支付交易系统消费业务流程设计

在这里插入图片描述

1 交易系统技术架构

预付卡支付交易系统采用Dubbo3作为底层框架,支付交易系统分为账户系统、清结算系统、支付网关、核心支付系统等模块。系统整体采用微服务架构,容器化部署。
在这里插入图片描述
在这里插入图片描述

2 消费业务流程设计

预付卡系统消费场景分为线上和线下,线下可以使用实体卡和电子卡进行消费。线上消费场景依托预付卡小程序和APP,互联网用户可以通过小程序和APP在支持预付卡的商户进行消费

2.1 消费业务流程

消费业务流程主要涵盖了线下交易和线上交易,本文主要分析线下POS消费交易流程,参与的系统主要包含了POS终端、卡系统-支付交易系统、授权系统。以下是业务流程图
在这里插入图片描述

2.2 消费接口设计

2.2.1 通信协议

HTTP/JSON

2.2.2 接口定义

交易码:

交易码名称操作码说明
VOUCHER-PAY卡消费
参数名必/可选类型长度参数说明约束
voucherId必选字符32卡/劵号多张劵号以,分割
channel必选字符1消费来源1:旅游 2:生活服务
checkPwd必选字符1是否校验密码0:不校验 1:校验密码
payType必选字符1消费类型1:现金卡2:点卡
password可选字符6密码checkPwd=1必选
payJournal必选字符16统一支付流水号统一支付保证流水唯一
payTime必选字符32消费时间yyyyMMddHHmmss
payAmount必选数字10消费金额
settleAmount必选数字10结算金额结算金额
extendInfo可选字符1024接口扩展字段

响应信息定义:

参数名必/可选类型长度参数说明约束
respCode必选字符返回代码
respMess必选字符返回消息
tradeJournal必选字符交易流水
balance可选字符卡余额卡消费必选
2.2.3 消息样例

请求消息

{"VoucherPay": {"voucherId": "","channel": "","checkPwd": "","payType": "","password": "","payJournal": "","payTime": "","payAmount": "","settleAmount": "","extendInfo": ""}
}

响应消息

{"VoucherPayResp": {"respCode": "0","respMess": "成功","tradeJournal": "20240617191100","balance": "198.25"}
}

3 消费撤销业务流程设计

3.1 消费撤销业务流程

消费撤销业务流程主要涵盖了线下交易和线上交易,参与的系统主要包含了POS终端、卡系统-支付交易系统、授权系统。消费撤销流程和上图的消费流程基本一致,本文只对消费撤销接口设计进行分析

3.2 消费撤销接口设计

3.2.1 通信协议

HTTP/JSON

3.2.2 接口定义

交易码:

交易码名称操作码说明
PAY-ROLLBACK消费撤销

请求信息定义如下:

参数名必/可选类型长度参数说明约束
voucherId必选字符32卡/劵号多张劵号以,分割
channel必选字符1消费来源1:旅游 2:生活服务
serviceType必选字符1业务类型2:冲正(POS机自动发起)3:撤销(操作员发起)4:退货(订单部分退)
payType必选字符1消费类型1:现金卡2:点卡
payJournal必选字符32统一支付流水号统一支付保证流水唯一
retJournal必选字符32原支付流水号统一支付保证流水唯一
payTime必选字符32消费撤销时间yyyyMMddHHmmss
payAmount可选数字10消费金额
settleAmount可选数字10结算金额结算金额
extendInfo可选字符1024接口扩展字段信息

响应信息定义:

参数名必/可选类型长度参数说明约束
respCode必选字符返回代码
respMess必选字符返回消息
tradeJournal必选字符交易流水
balance必选字符卡余额
3.2.3 消息样例

请求消息

{"PayRollback": {"voucherId": "","channel": "","serviceType": "","payType": "","payJournal": "","retJournal": "","payTime": "","payAmount": "","settleAmount": "","extendInfo": ""}
}

响应消息

{"PayRollbackResp": {"respCode": "0","respMess": "成功","tradeJournal": "20240617191100","balance": "98.25"}
}

4 加入项目实战

欢迎关注我的视频号,视频号有相关技术和业务视频可学习支付业务/文旅行业数字化。探讨技术(系统架构、微服务、容器化、云原生),支付系统项目实战请加入我的付费社群。商务合作备注业务咨询
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【安装和引入 PyTorch 包,快来收藏】

在本文介绍 PyTorch 中一些最常用的命令和设置。 一个完成的 PyTorch 工作流程。 安装和引入 PyTorch 包 最好的安装教程就是去官方网站:https://pytorch.org/get-started/locally/ 安装结束之后,直接引入整个 torch 包: import torch或…

【机器学习300问】122、RNN面临哪些问题?

循环神经网络(RNN)主要面临梯度消失和梯度爆炸两个核心问题,这严重影响了其处理长期依赖的能力。此外,还存在一些其他的技术挑战。 一、两个主要问题 (1)梯度消失和梯度爆炸问题 这是RNN中最显著的问题之…

示例:WPF中绑定枚举到ComboBox的方式

一、目的:在开发过程中,经常会需要把枚举绑定到ComboxBox下拉列表中,其实方法有很多,这里面通过MarkupExtension扩展GetEnumSourceExtension去绑定到列表 二、实现 定义GetEnumSourceExtension类 public class GetEnumSourceExte…

Elasticsearch-使用Logstash同步Mysql

1.安装logstash es服务器版本必须和logstash版本一致 7.9.2 在/usr/local/src/下新建logstash文件夹,解压 下载logstash后查看是否安装成功,在logstash的bin目录下输入指令: ./logstash -e input { stdin { } } output { stdout {} }2.my…

【乳业巨擘·数字革命先锋】光明乳业:上市公司科技蜕变,搭贝低代码引领未来新纪元

在这个由科技编织的未来世界里,光明乳业股份有限公司以巨人之姿,傲立于乳业之巅,以其无与伦比的胆识与魄力,引领了一场震撼业界的数字化革命。与低代码领域的创新领袖——搭贝的强强联合,不仅标志着光明乳业在数字化转…

吉林省教育学院学报杂志社吉林省教育学院学报编辑部2024年第5期目录

“研培一体”理论与实践 教师培训管理共同体的职能定位与价值追求 张岩; 1-3 数字化转型背景下教师培训工作的发展路径 李春光; 4-6 挖掘数智潜能,推进教师培训融合创新 鲍赫; 7-9《吉林省教育学院学报》投稿:cn7kantougao163.com 精准培…

AcWing 1273:天才的记忆 ← ST算法求解RMQ问题

【题目来源】https://www.acwing.com/problem/content/1275/【题目描述】 从前有个人名叫 WNB,他有着天才般的记忆力,他珍藏了许多许多的宝藏。 在他离世之后留给后人一个难题(专门考验记忆力的啊!),如果谁…

RockChip Android12 Settings一级菜单

一:概述 在之前的文章中对Android8.1 Settings的流程进行了说明,本章将针对Android12 Settings一级菜单的加载逻辑进行详细说明,Settings版本之间的差异不是很大,有兴趣的同学可自行学习,本文不在做赘述。 Android8.1 Settings说明:RockChip Android8.1 Settings-CSDN博…

创邻科技张晨:期待解锁图技术在供应链中的关联力

近日,创邻科技创始人兼CEO张晨博士受浙江省首席信息官协会邀请,参加数字化转型与企业出海研讨会。 此次研讨会旨在深入探讨数字经济时代下,企业如何有效应对成本提升与环境变化所带来的挑战,通过数字化转型实现提效增益&#xff…

解决Unity-2020 安卓异形屏黑边

背景 Unity 2020.3.17 版本开发的游戏,打apk包,发现两个问题 如图下午所示,实体白色导航栏,阻挡了整个安卓UI界面,难看还影响美观。 安卓系统 12-13 版本手机,异形屏。一侧安全区黑边遮挡,占空间…

第2讲:pixi.js 绘制HelloWorld

基于第0讲和第1讲,我们增添了vite.config.ts文件。并配置了其他的http端口。 此时,我们删除掉没用的东西。 删除 conter.ts、typescript.svg 在main.ts中改成如下内容: import {Application, Text} from pixi.js import ./style.css// 指明…

数组元素的内存地址计算【数据结构与算法C#版】

数组元素被存储在连续的内存空间中,这意味着计算数组元素的内存地址非常容易。给定数组内存地址(首 元素内存地址)和某个元素的索引,我们可以使用下方图 所示的公式计算得到该元素的内存地址,从而直接 访问该元素。 观…

C# Winform图形绘制

WinForms 应用程序中的控件是基于窗体的,当控件需要重绘时,它会向父窗体发送一个消息请求重绘。但是,控件本身并不直接处理绘制命令,所以你不能直接在控件上绘制图形。 解决方法: 重写控件的OnPaint方法使用CreateGr…

五大维度大比拼:ChatGPT比较文心一言,你的AI助手选择指南

文章目录 一、评估AI助手的五个关键维度二、ChatGPT和文心一言的比较 评估AI助手的五个关键维度,以及ChatGPT和文心一言的比较如下: 一、评估AI助手的五个关键维度 界面友好性 : 评估标准:用户界面是否直观易用,是否…

Java基础 - 练习(一)打印等腰三角形

Java基础练习 打印等腰三角形,先上代码: public static void main(String[] args) {// 打印等腰三角形System.out.println("打印等腰三角形:");isoscelesTriangle(); } public static void isoscelesTriangle() {// for循环控制行…

探索未来工作新伙伴:机器人流程自动化(RPA)揭秘

想象一下,如果你的日常工作中那些繁琐、重复的任务,比如数据录入、文件整理、邮件发送等,都能自动完成,你将拥有更多时间专注于真正需要创造力和智慧的工作,是不是听起来就像拥有了一个私人助理?这并不是遥…

数据结构之线性表(3)

数据结构之线性表(3) 上文我们了解了线性表的静动态存储的相关操作,此篇我们对线性表中链表的相关操作探讨。 在进行链表的相关操作时,我们先来理解单链表是什么? 1.链表的概念及结构 链表是一种物理存储结构上非连…

C++命名空间

命名空间(namespace)的目的&#xff1a;对标识符的名称进行本地化&#xff0c;以避免命名冲突或者名字污染 #include<stdio.h> #include<stdlib.h>int rand 0; int main() { //C语言没有办法解决类似这种的命名冲突&#xff0c;而C提出了namespace来解决printf(&…

【日常记录】【vue】vite-plugin-inspect 插件的使用

文章目录 1、vite-plugin-inspect2、安装3、使用4、链接 1、vite-plugin-inspect vite-plugin-inspect 可以让开发者在浏览器端就可以看到vue文件编译后的代码、vue文件的相互依赖关系 2、安装 npm i -D vite-plugin-inspect// vite.config.ts import Inspect from vite-plugi…

6.17作业

升级优化自己应用程序的登录界面。 要求&#xff1a; 1. qss实现 2. 需要有图层的叠加 &#xff08;QFrame&#xff09; 3. 设置纯净窗口后&#xff0c;有关闭等窗口功能。 4. 如果账号密码正确&#xff0c;则实现登录界面关闭&#xff0c;另一个应用界面显示。 //发送端头文件…