自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 跨境收单流程

外汇锁汇:支付平台和外汇渠道锁定汇率1美元 = 6.5人民币,确保支付过程中汇率不会波动。支付渠道清算:支付平台通过支付渠道提交支付请求并清算资金。外汇兑换:支付平台将人民币65,000元兑换为10000美元。支付渠道打款:支付平台通过支付渠道将10000美元支付给供应商。外汇交割:外汇渠道完成资金交割,支付平台最终确认收款。这个过程中,外汇渠道、支付渠道和支付平台之间的协作确保了资金安全、汇率锁定和跨境支付的顺利完成。

2025-06-08 16:06:47 682

原创 支付系统架构图

它处理支付方式的选择、支付流程的控制以及支付结果的反馈。支付引擎的核心任务是确保支付流程的高效和准确,支持多种支付方式的切换。如果支付成功,支付引擎会继续向资金账务模块发起清算操作,记录交易的相关信息,包括支付金额、支付方式、交易编号等。它实现不同支付渠道之间的资金流转和信息交互,确保跨渠道支付的顺利进行。对账中心会对资金账务模块中的交易数据与外部渠道的支付数据进行对比,确认支付金额、时间、交易编号等信息的一致性。在这一步,资金账务模块会记录每一笔交易的详细数据,包括支付金额、交易编号、商户账户等信息。

2025-06-08 14:42:03 1098

原创 跨境资金方案

这是一个典型的跨境资金流案例。用户支付USD,收单机构收到的是USD,但是需要结算RMB给中国境内的商户。针对上面的问题,分别有两种解决方案,“入境结汇”和“结汇入境”。

2025-06-06 10:57:46 207

原创 跨境收单的协议关系

跨境电商例子:京东全球购假设京东全球购(JD Worldwide)是一个典型的跨境电商平台,国内供应商通过该平台向全球消费者销售商品。

2025-06-06 10:30:01 249

原创 2.12. 账户分类

假设用户在一个电商平台上购买商品,支付成功后因某种原因(如用户取消订单或超期未发货等)订单被关闭。我们将跟踪用户支付后各账户的变化,直到退款完成。

2025-06-05 09:12:28 624

原创 处理商户请求最佳实践

支付系统可能会因为外部网络抖动或支付渠道不稳定而导致查询请求的响应时间会变长。这种情况下,请求可能会积压在后台,导致内部的处理线程被占满,系统资源被耗尽,从而引发系统故障或雪崩。

2025-06-04 17:18:51 832

原创 收银台查询支付结果最佳实践

这种查询方式的一个问题是,如果网络状况不好(例如网络抖动)或者外部支付渠道出现故障(例如渠道不稳定、支付系统延迟等),查询请求的响应时间会变长。这种情况下,查询请求可能会积压在后台,导致内部的处理线程被占满,系统资源被耗尽,从而引发系统故障或雪崩。在许多支付系统中,用户提交支付请求后,系统通常会在收银台页面等待支付结果。收银台只查询自己的缓存数据,即将查询结果暂时保存在系统的缓存中,避免每次查询都直接访问外部渠道。外部渠道指的是支付机构(如支付宝、微信支付、银行卡支付等),支付结果需要从这些外部渠道获取。

2025-06-04 16:46:10 123

原创 标准收银台和前置收银台

标准收银台指的是由支付平台或支付网关提供的标准化支付界面,通常是通过嵌入到商家网站或应用程序中的支付页面。在这种方式下,用户完成支付时,通常会被重定向到第三方支付平台(例如支付宝、微信支付、PayPal等)进行支付操作。

2025-06-04 16:28:04 131

原创 收单域、支付域和资金产品域

在一些场景中,资金产品域也可能与支付相关的操作进行交互,例如在充值时验证支付的成功与否、确认充值金额、资金的到账等。资金产品域主要是管理和跟踪资金的流转,充值涉及的是用户的资金账户,所以查询资金产品域能够确保用户资金的实际变动情况。主要处理支付请求的发起和支付结果的确认,包括支付方式的选择(如信用卡、支付宝、微信支付等),以及与支付网关的交互。支付域和资金产品域的交互:支付成功后,支付域会通知资金产品域进行相应的账户余额变动。收单域和支付域的交互:商户生成的订单(收单域)需要经过支付域来处理支付请求。

2025-06-04 16:23:49 357

原创 组合支付要不要拆支付流水

这里的“组合支付”指的是在一次交易中,可能使用多种支付方式(比如部分用信用卡支付,部分用支付宝支付等)。“拆支付流水”是指将每一种支付方式生成单独的支付流水记录,而不是将所有支付方式的流水放在一个合并的记录中。先说结论:要拆。接下来是两个问题:为什么拆支付流水?如果不拆支付流水是否可以?首先,为什么要拆?每种支付方式都有不同的特性,比如支付金额、支付时间、支付状态等,如果所有支付方式都放在一个支付单中,可能导致信息难以清晰表达和管理。

2025-06-04 15:50:31 598

原创 支付系统领域建模最佳实践

领域服务层是领域驱动设计(DDD)中的核心,它包含了系统的业务逻辑,专注于领域问题的解决。领域服务层通常是围绕业务领域概念来组织的,负责执行复杂的业务规则和逻辑,它封装了实际的业务行为。上层的业务需求可能会经常变,尤其是支持多个业务时,各个业务关注点可能不一样,也有一种可能就是上游只需要感知部分属性,直接把整个模型透出去是不合适的,这就要用到模型和视图分离的设计思路。业务操作的封装:领域服务负责封装一些高层次的业务操作,避免将这些复杂操作分散到多个实体或值对象中,从而确保系统的一致性和清晰的业务结构。

2025-06-03 10:23:24 1001

原创 渠道流程引擎设计

选型jBPMActivitiLiteflow配置复杂度高,尤其是简单流程也需要大量XML配置中等,XML配置较为繁琐低,配置简洁,基于DSL灵活性与扩展性非常强,适用于复杂的企业级应用强,适合中小型项目高,轻量级,适用于快速开发集成与部署难度高,需要较强的技术背景中等,集成较为简单低,易于快速集成可视化支持有,可通过图形化设计流程有,支持BPMN图形化设计缺少,主要通过代码配置适用场景企业级复杂流程管理中小型企业的工作流需求快速构建和管理简单、中等复杂度的流程。

2025-03-28 21:50:27 556

原创 渠道流程编排

渠道流程编排(Channel Process Orchestration) 是指在支付系统中,通过对不同渠道(如移动支付、线上支付、ATM、POS机等)的整合与协调,设计并管理支付业务的流程。这一过程确保无论用户通过哪个渠道发起支付请求,系统都能保证统一的流程和业务规则,从而提供一致的用户体验。

2025-03-28 20:53:46 567

原创 流程编排和流程引擎

无论是渠道、业务、技术、跨系统、审批、事件驱动还是条件流程编排,都有各自的特点和应用场景,目的都是为了更高效、更灵活地管理和优化支付系统中的各项操作。这种编排方式依赖于事件流转,确保流程的自动响应与处理。应用:例如,当用户发起支付时,系统会通过技术流程编排自动调度相关的服务(如支付网关、风险控制、账户余额检查等),并确保不同系统间的数据同步与接口的顺畅调用。应用:在支付系统中,当支付涉及到多个系统的协作(如银行系统、支付网关、商户系统等),跨系统流程编排确保各个系统能够按预期协同工作,完成支付请求的处理。

2025-03-28 20:38:09 541

原创 外部渠道网关

外部渠道网关(External Channel Gateway)是一个中间层系统,通常用于在支付系统和外部第三方服务(如银行、支付平台、信用卡公司等)之间进行信息交互。它的主要作用是将支付系统和外部渠道(如银行或支付服务提供商)进行对接,完成支付请求的发送、响应的接收以及相关数据的转换、验证等操作。在一个电商平台的支付系统中,商家通过支付网关向银行或第三方支付服务提供商发起支付请求,网关将请求中的支付信息转换为银行或支付平台要求的格式,并对其进行签名。

2025-03-28 18:45:39 639

原创 支付系统常见设计模式

支付系统里面有很多单据,每种单据都有自己的状态,比如支付单有“初始化”,“支付中”,“预授权成功”,“请款中”,“成功”,“失败”共6种状态,如果不使用状态模式,那就直接在订单类里面使用String来定义,状态的推进全部写if else或case when来实现,会导致这部分的代码很容易出错,要不就写得很复杂。一个典型的案例就是支付引擎。支付系统应用的场景非常多,比如为提高运算速度,支付方式被缓存在内存中,运营人员如果在后台关闭了某个支付方式,那就需要通知所有的机器刷新缓存,就可以用到观察者模式。

2025-02-10 18:57:45 952

原创 设计模式总结

设计模式分为三大类:创建模式(简单工厂模式、工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式)结构模式(适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式)关系模式(策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式)

2025-02-10 18:33:16 870

原创 Java创建线程的方法

无论是哪种方式,最终还是依赖于new Thread().start()创建线程。如果不使用,还是会用main线程执行。下面的创建线程的方法中没有显式调用new Thread().start(),但源码中也都依赖Thread().start()创建线程。

2024-08-15 11:13:44 157 1

原创 synchronized关键字及锁升级原理

JDK1.6后synchronized优化(锁升级)

2024-08-15 11:07:21 192

原创 构造器中范型无法重载问题:both methods have same erasure解决方法

上述代码会导致编译错误:“both methods have same erasure”,因为在类型擦除后,两个构造函数的参数都变成了List,Java编译器无法区分它们。

2024-03-07 18:02:33 951

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除