支付路由程序员程序猿的进阶屋

支付系统设计

2017-11-21  本文已影响4838人  daydaygo

date:2017-04-01

巨人的肩膀

In me the tiger sniffs the rose. —— 英国诗人西格夫里·萨松代表作《于我,过去,现在以及未来 》

从入门到精通:支付系统设计

ping++ - 从入门到精通:关于支付系统设计的 17 篇文章

趋势

支付的本质,是价值的转移

聚合支付:

http://qiniu.daydaygo.top/pay-system-design/pay-account

支付服务其实需要一套完整的业务系统,包括且不限于账务系统、账户系统、路由系统、风控/反欺诈系统、运营系统等,要为商户提供完整的“一站式”支付服务

企业级支付突围:

支付市场未来格局:

支付系统的专业与商业

支付的商业化探索:

从功能到场景的转变:

支付营销:

http://qiniu.daydaygo.top/pay-system-design/pay-operation1

http://qiniu.daydaygo.top/pay-system-design/pay-operation2.jpg

不同行业支付系统设计

映客APP:

http://qiniu.daydaygo.top/pay-system-design/inke

教育行业:

社区 + 消费(母婴):

旅游 app:

http://qiniu.daydaygo.top/pay-system-design/consume-flow

「支付力量」系列

嘛,带些软广,就不列举了

凤凰牌老熊 - 支付系统设计系列

支付系统架构

支付的典型架构

image image image image

龙果开源支付系统

http://git.oschina.net/roncoocom/roncoo-pay

image image

sfy 支付系统升级

支付系统现状

sfy 支付相关整理:使用百度脑图进行整理

相关问题:

数据库事务 是必须要加的,除了防止支付渠道的异步、同步同时到达,也要防止业务系统内部的并行操作

支付场景:

支付方式交互字典:统一使用账务系统中记录的支付方式, 避免子系统见不统一

设计方案:独立出支付系统

支付系统当做支付渠道,包含一套 sdk 可以供业务系统使用,sdk 包括 4 部分内容:下单、同步、异步、查询

需要考虑 2 点:

最终细化设计如下:

image image

盗用一下别人的图,抽空再练练 Axure

支付系统前期工作:代码拆分,进行分层

分层设计

pay-gateway(支付网关) / pay-task(后台任务) -》pay-lib(支付公共库) -》php-lib(基础公共库)

确定 代码分层依赖关系 后,实现起来的难点主要在于一个接一个业务项目的 拆分 代码,并清理支付方式中的业务代码

支付系统网关 - pay-gateway

业务系统和支付系统API交互约定规则:

收单接口

同步接口

支付系统 - 异步接口

查询接口

业务通过下单使用的单号,调用支付系统支付查询接口获取支付结果
业务系统和支付系统属于内网交互,可靠性更高,可以考虑不做

支付系统后台任务 - pay-task

查询支付渠道支付结果

数据层设计

增加 PayOrder 用来跟踪支付单

日志

增加专用支付日志, 打在关键节点上:

php 编程相关

编码规范

PHP 标准规范

部分通过配置 phpstorm IDE code style 实现(快捷键 ctrl-alt-l

遵循的编码规范:

违反的编码规范:

自动加载

http://docs.phpcomposer.com/

第三方依赖

https://packagist.org

开发环境 docker + docker-compose

使用 RAML 写 api

http://raml.org/

上一篇下一篇

猜你喜欢

热点阅读