当前位置: 首页 > news >正文

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

在这里插入图片描述

1 技术架构

系统整体采用微服务架构,JDK使用17版本,SpringBoot为3.x版本。系统涵盖了管理后台,交易系统,客户端(小程序,APP)。
在这里插入图片描述

2 卡充值业务流程设计

2.1 卡充值业务流程

系统采用了多种充值方式具体有以下几种小程序、APP、自助终端等方式。系统参与方主要有预付卡充值终端(小程序,APP,硬件)、预付卡交易系统、第三方支付系统。用户选择预付卡充值方式(小程序,APP等)向卡系统-支付交易系统发起充值请求,支付交易系统处理内部相关校验并调用第三方支付接口完成预付卡充值。以下为具体流程图
在这里插入图片描述

2.2 卡充值接口设计

2.2.1 通信协议

HTTP/JSON

2.2.2 接口定义

交易码

交易码名称操作码说明
VOUCHER-RECHARGE充值

消息请求对象节点名CardRecharge,节点字段定义如下:

参数名必/可选类型长度参数说明约束
voucherSeq必选字符128卡序号单张充值传卡号
orderType必选字符1充值方式1单张充值 2批量充值
payType必选字符1消费类型1:现金卡2:点卡3:电影兑换卡(次卡)
operId必选字符32充值操作员自助终端传终端编号
voucherNum必选数字10充值卡数量
saleId必选字符32售卡机构编号
timeStamp必选时间14时间戳yyyyMMddHHmmss
singleSaveAmount必选数字10单张充值金额现金卡传金额,点卡传点数、次卡传次数
singleRealAmount必选数字10单张实收金额金额值
totalSaveAmount必选数字10总充值金额现金卡传总金额,点卡、次卡、劵得到根据标准售价得到的总金额
totalRealAmount必选数字10总实收金额金额值
expDate可选时间8有效期YYYYMMDD
rebateAmount可选数字10返佣金额值
strantAmount可选数字10标准价点卡、次卡、劵销售必选
saleManager可选字符32销售助理编号
saleMan必选字符32业务员编号
extendInfo可选字符1024接口扩展字段信息

返回消息对象节点名CardRechargeResp,节点字段定义如下:

参数名必/可选类型长度参数说明约束
respCode必选字符返回代码respCode
respMess必选字符返回消息respMess
orderId必选字符订单号orderId
voucherSeq必选字符凭证序号voucherSeq
2.2.3 消息样例

请求消息数据体BusinessData格式样例:

{"VoucherRecharge": {"voucherSeq": "00090000100019-00090000100100","orderType": "1","operId": "","voucherNum": "","saleId": "","timeStamp": "","company": "","singleSaveAmount": "","singleRealAmount": "","totalSaveAmount": "","totalRealAmount": "","thirdJournal": "","extendInfo": ""}
}

消息响应:

{"VoucherRechargeResp": {"respCode": "0","respMess": "成功","orderId": "20140224145600","voucherSeq": "00090000100019-00090000100100"}
}

3 充值审核接口设计

3.1 通信协议

HTTP/JSON

3.2 接口定义

交易码

交易码名称操作码说明
AUTH-RECHARGE]发卡机构充值

消息请求对象节点名AuthRecharge,节点字段定义如下

参数名必/可选类型长度参数说明约束
orderId必选字符32充值订单号
operId必选字符32当前操作员id
extendInfo可选字符1024接口扩展字段信息以 | 分割

返回消息对象节点名AuthRechargeResp,节点字段定义如下:

参数名必/可选类型长度参数说明约束
respCode必选字符返回代码
respMess必选字符返回消息
orderId必选字符订单号
voucherSeq必选字符凭证序号

3.3 消息样例

请求消息数据体BusinessData格式样例:

{"AuthRecharge": {"orderId": "20240618162400","operId": "itbeien","extendInfo": "1"}
}

消息响应:

{"AuthRechargeResp": {"respCode": "0","respMess": "成功","orderId": "20240618145600","voucherSeq": "00090000100019-00090000100100"}
}

4 关注我

欢迎关注我的视频号和公众号,视频号有相关技术和业务视频可学习支付业务/文旅行业数字化。探讨技术(系统架构、微服务、容器化、云原生)。
在这里插入图片描述

相关文章:

  • 格雷母线技术革新:推动斗轮堆取料机进入精准操作时代
  • 人工智能--自然语言处理NLP概述
  • GD32F4xx 移植agile_modbus软件包与电能表通信
  • 怎么把webp文件转换为jpg?快来试试这四种转换方法!
  • 简单剖析tRPC-Go中使用的第三方协程池ants
  • 精读文献|《CATENA》新文:全球植被绿化对生态系统水分利用效率的响应
  • Python sorted()方法
  • 极具吸引力的小程序 UI 风格
  • 1. ELK日志分析
  • delmia中机器人末端固定工具
  • spring01
  • 用android如何实现计算机计算功能
  • 【机器学习】 第1章 概述
  • 从视频创意到传播策略 | 医药产品TVC新媒体传播方案
  • 运动想象 (MI) 分类学习系列 (14) :基于时空光谱特征的分类方法
  • [译]如何构建服务器端web组件,为何要构建?
  • 【前端学习】-粗谈选择器
  • 2017 前端面试准备 - 收藏集 - 掘金
  • Akka系列(七):Actor持久化之Akka persistence
  • android图片蒙层
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • leetcode98. Validate Binary Search Tree
  • Phpstorm怎样批量删除空行?
  • React16时代,该用什么姿势写 React ?
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • React-生命周期杂记
  • Redis字符串类型内部编码剖析
  • select2 取值 遍历 设置默认值
  • session共享问题解决方案
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 第2章 网络文档
  • 前端技术周刊 2019-02-11 Serverless
  • 如何胜任知名企业的商业数据分析师?
  • 手写双向链表LinkedList的几个常用功能
  • 思否第一天
  • 微服务入门【系列视频课程】
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • Java总结 - String - 这篇请使劲喷我
  • Spring Batch JSON 支持
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #Z0458. 树的中心2
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (Oracle)SQL优化技巧(一):分页查询
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (七)glDrawArry绘制
  • (生成器)yield与(迭代器)generator
  • (一)认识微服务
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (自用)交互协议设计——protobuf序列化
  • .Net Core 生成管理员权限的应用程序