搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
小丑西瓜9
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
假设检验六大步骤_检验步骤
2
鸿蒙系统和安卓系统的区别_安卓和鸿蒙系统的区别
3
新版标准日本语初级_第四十二课
4
PyQt5 将图片打包进exe_带背景图片的pyqt5代码怎么打包成exe
5
element-UI组件el-button样式覆写 - 生效篇_element notify 中加el-button
6
Flutter 中文文档:发起 WebSockets 请求
7
AndroidUSBCamera 使用步骤_com.github.jiangdongguo.androidusbcamera:libausbc:
8
python 快递分拣小程序_编写程序,将文件“快递地址.txt”里的数据进行分拣,最终生成如下的数据格 式: {
9
Lg手机在linux刷机,LG G3卡刷刷机详细图文教程
10
OpenHarmony 物联网设备开发环境搭建_openharmony devices
当前位置:
article
> 正文
支付中心重构_重构简单版支付中心
作者:小丑西瓜9 | 2024-03-22 00:35:31
赞
踩
重构简单版支付中心
我们之前版本的支付中心实现了不同支付方式统一的接口,但是后面向第三方请求的时候,只设计了单一配置,即只能以同一个账户和第三方支付公司发生交易,并且支付记录的保存并不完善,不能从支付中心直接查出来支付的总量。随着公司业务的扩大,我们来自不同产品线的支付需求要求支付账号可能是多个,也可能是跨公司主体的。为了更好的服务不同项目,我对原来的支付中心进行了重构。
1.支付中心采用一套统一的接口来对外提供服务,如果是需要调用分出来的支付服务,也是由支付主服务去调用,其他的业务系统只和支付主服务打交道。在架构层面对原来的springboot进行了升级,升级到了springcloud,为公司业务规模的扩大,提供了技术上的准备,但是与各个系统对接的时候还是采用http请求,这样当新上线一个产品的时候,支付中心不需要动。
2.对于原来的配置方式进行了更新,原来的账号配置采用的是properties文件方式,但是对于同一个支付方式有多个账号的情况,支持就不好。改为了采用yaml文件的方式进行配置,可以支持任何配置。对于业务系统的支付请求采用按照订单前缀的方式进行配置关联。主动通知的时候,也是通过订单前缀拿到内部服务的地址,通知给业务系统
3.某些支付方式采用jar方式提供加密解密服务,并且配置是采用相对路径来读取properties文件方式。只能把该支付方式从支付中心的主服务中拆出来,采用独立的服务来实现,一旦该种支付方式需要有多个账号提供服务的时候,通过打包不同配置的方式发布成不同的服务来实现。因为我们采用genkins来做版本发布,因此就需要把整个服务打包成jar包的形式。有些第三方支付提供的jar包读取父jar包中properties文件有问题,我直接改了第三方公司的jar包中的class文件来使之可以读取。
4.目前我们支付的服务分为2种类型,一种是银行卡扣款支付,需要传支付4要素,发送短信验证码验证支付的,另一种是微信支付的这种,两种差异比较大,因此从接口层就将他们拆开了,不同的支付类型调用不同的接口,能共用的尽量共用。在数据保存上,收款和付款用不同的数据库表来记录,银行卡四要素验证的和微信类支付的用不同的表来记录,退款和收款用不同的表记录。对于每一笔支付,记录下每一笔交易发生的时间,结果,对账结果。
这次支付中心重构本质上是组织的重构,将原来每开一个业务线就单独运行一个支付中心的方式重构为由独立的支付组来负责支付业务。当然不止支付中心,信用中心,api监控中心都是采用了类似设计,来将这些服务和业务系统分离出来。走的是大中台,小前台的模式,由专业的后援团队来为每个业务线提供支持。
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
【wpsshop博客】
推荐阅读
article
利用多层
卷积
神经网络
(
CNN
)
特征
的互补优势 进行
图像
检索_
cnn
提高训练效果...
利用多层
卷积
神经网络
(
CNN
)
特征
的互补优势进行
图像
检索本文原网址为:http://www.sciencedirect....
赞
踩
article
鸿蒙OS
线程
管理
开发
指导...
如果应用的业务逻辑比较复杂,可能需要创建多个
线程
来执行多个任务。这种情况下,代码复杂难以维护,任务与
线程
的交互也会更加繁...
赞
踩
article
AutoLayout
屏幕
适配...
首先添加依赖 implementation 'com.zhy:autolayout:1.4.5' 第二步 manifes...
赞
踩
article
图像
检索
技术简述...
图像
检索
技术主要分为两类,一类是基于文本的
图像
检索
(Text Based Image Retrieval),另一类是基于...
赞
踩
article
android
的
短信
集成,
Android
短信
驗證碼
SMSSDK
集成與使用...
在用戶注冊的過程中,我們常常可以看到使用
短信
驗證碼
的方式來驗證用戶手機號的真實性。在此就分享下
SMSSDK
的集成與使用。...
赞
踩
article
Linux
内存
管理1——
虚拟
内存
空间
...
本文主要分析了进程虚拟
空间
存在的意义,以及进程虚拟
空间
相关数据结构,在用户态
空间
以及内核态
空间
中虚拟
空间
是如何分布的,最...
赞
踩
article
17 【
Document
节点
】_
document
.
fullscreenelement
...
17 【
Document
节点
】_
document
.
fullscreenelement
document
.fullscre...
赞
踩
article
HarmonyOS
-
鸿蒙
系统概述_
arkts
和
artts
是
同一个
东西吗...
华为“1+8+N” 全场景智慧战略,其中居于核心的“1”
是
智能手机,“8”
是
指围绕手机的车机、音箱、耳机、手表/手环、平...
赞
踩
article
无
注册
中心使用
dubbo
_
dubbo
co
n
sumer 无
注册
中心
n
/
a
...
前言熟悉
dubbo
的朋友都知道,
dubbo
可通过指定Url方式绕过
注册
中心直连指定的服务地址,所以想当然会想到那么可不可...
赞
踩
article
前端项目开发时,实现点击按钮,
浏览器
全屏
的方法及踩坑记录_
window
.addeventlisten...
浏览器
中实现
全屏
事件的方法及逻辑_
window
.
addeventlistener
(
"
fulls
c
reen
c
hange
"
,...
赞
踩
article
docker
容器
- 卷(
volume
)-
挂载
_
docker
volume
挂载
...
在
容器
化应用程序开发和部署过程中,卷(Volume)是一个非常常见的概念,它可以将主机文件系统或其他
容器
的文件系统
挂载
到...
赞
踩
article
Qt 不同
数据
类型转换
...
在Qt框架中,处理JSON
数据
时经常需要将JSON对象转换为字符串格式,以便于存储或传输。QJsonDocument类提...
赞
踩
article
dubbo
yml
配置
_SpringBoot2.0完美整合
Dubbo
...
2019已经到了,希望我跟大家一样有一个新的开始,18年有再多的烦恼和不堪,那只是过去,接下来走好脚下的路就行了。现在微...
赞
踩
article
【硬件
设计
】
STM32
衣柜
系统
_基于
stm32
的
智能
衣柜
系统
设计
...
本次
衣柜
系统
的
设计
使用
STM32
单片机作为控制中心,
系统
通过DHT11进行温湿度检测,通过MQ-2进行烟雾浓度检测,通过...
赞
踩
article
vue3
前端
实现
全屏
显示,
元素
垂直填满页面
_
elementuiplus
全屏
...
2、使用flex属性+ flex-direction
实现
垂直布局填满整个页面。1、 toggleFullscreen方...
赞
踩
article
docker
部署
springboot
项目(详细教程)
_
docker
springboot
...
docker
的核心思想是通过对应用的封装、分发、
部署
、运行生命周期进行管理,达到应用组件级别的“一次性封装,到处运行”。...
赞
踩
article
Java
简历技能怎么
描述
...
描述
Java
技能在简历上是非常重要的,因为它可以帮助您展示出您的技能和经验。下面是一些
描述
Java
技能的提示:明...
赞
踩
article
机器
学习
算法
(七): 基于
LightGBM
的分类预测(基于英雄联盟
10
分钟数据判断红蓝方胜负)
_
hi...
机器
学习
算法
(七)基于
LightGBM
的分类预测1. 实验室介绍1.1
LightGBM
的介绍
LightGBM
是2017...
赞
踩
article
Nacos
控制台
导入
配置介绍与踩坑_
nacos
导入
文件
必须是
压缩包
吗...
1.
Nacos
控制台手册https://
nacos
.io/zh-cn/docs/console-guide.html...
赞
踩
article
【CV学习笔记】
ncnn
+
FastDet
多线程
c++
部署_部署
fastestdet
...
c++
、
ncnn
、fastdet、
多线程
_部署
fastestdet
部署
fastestdet
...
赞
踩
相关标签
CBIR
cnn
图像处理
神经网络
计算机视觉
harmonyos
microsoft
windows
Androi
人工智能
linux
运维
服务器
javascript
前端
华为
java
spring boot
dubbo
浏览器全屏事件
F11全屏冲突问题
docker
容器
qt