引言

前一篇文章中,我们有了一些重要的支付概念,本篇我们先建立领域模型(也称业务模型),技术是服务于业务的,开发人员都明白为什么我这里要强调这个,业务没搞明白,吭哧吭哧的开发,多半被项目经理唾沫淹死。

1、业务关系

  1. 商户需要在第三方支付平台注册,并开通相关的代付、代扣协议。
  2. 用户需要先操作银行卡签约,签约完成才能进行后续的支付、查询、退款操作。
  3. 商户作为中间层处理,也需要有用户的几种基本操作。
  4. 商户还需完成和第三方支付平台的对账,通常都是以天为单位进行对账。
  5. 对账无误,则当日资金结算完毕。

疑问解答:为什么以天为单位对账

答:对账以月为单位,粒度太大,风险也太大,排查起来困难;以小时为单位,粒度太小,不易控制,增加系统复杂性;以天为单位,第二天统计第一天的数据,时间充分,风险易控。

2、支付流程

  1. 用户向商户发起支付请求;
  2. 商户验证用户银行卡签约是否成功,如是,则向对应的支付通道发起代扣(需要加密);
  3. 第三方支付平台收到请求,会校验商户信息等,校验成功,则发起扣款,并同时返回同步结果;
  4. 银行异步通知第三方支付,第三方支付将支付状态更新,并异步通知商户,商户再告知用户支付结果。

疑问解答:

  1. 为什么有同步结果和异步结果
    答:从用户发起支付请求:用户——商户——第三方支付——银行,处理成功响应:银行——第三方支付——商户——用户。支付处理的流程复杂,调用链路长,为了不必要的等待,提高处理效率,支付系统中多使用异步机制。同步返回的是受理结果,异步返回的是处理结果。
  2. 为什么参数需要加密
    为了保证数据的安全性,事实上,不仅仅是请求的参数进行了加密,商户请求第三方支付平台时候,第三方支付平台也需要校验商户服务器的IP是否在白名单中,异步回调的时候,商户也需要验证消息的来源是否是第三方支付平台的服务器IP发过来的。

3、模块划分

3.1、用户模块

用户需要进行银行卡签约,签约需要验证四要素(姓名、身份证、银行卡、手机号)是否一致。银行卡签约成功后,在一定时间内是不需要重新签约的,除非用户解绑银行卡,否则后续支付和退款中不需要重新签约。
疑问解答:为什么是一定的时间
答:因为时间长了,用户可能换卡了,可能改手机号了,这些都会导致银行卡签约无效。

3.2、支付模块

支付模块主要是支付、查询、退款的操作,涉及虚拟账户、支付流水、退款流水的日志记录等。设计要点:1. 接口的幂等性,2. 交易结果的正确性,3. 日志的完善性。
疑问解答:这里的日志完善性是指什么
答:前面两条相信大家不会有疑问,日志的作用相信大家也知道:肩负着问题定位和分析的重任。但是在交易中,日志还肩负着交易跟踪的重任,能在与第三方支付平台扯皮时快速的扔出凭证,完善的日志系统交付给运营使用后,是不是感觉离正常下班又早了一步!

3.3、对账模块

对账是支付流程中的一个闭环,不可或缺,下面是对账的流程:

  1. 下载远程的文件。
  2. 创建文件批次(单个文件可能太大,无法一次性加载内存)
  3. 解析文件入库
  4. 对账处理
  5. 对账统计
  6. 差错处理或平账

结束语

本来这篇准备讲讲数据库表设计的,但是又感觉不妥,毕竟能看到这篇文章的,不仅仅是成熟的支付开发者,更多的是新晋支付开发者,因此,还是先列出了领域模型,通过这两篇支付扫盲,后面再看表结构设计应该更容易了。下一篇:支付的那些事——数据库篇。

支付的那些事——领域模型篇相关推荐

  1. ES6 你可能不知道的事 – 基础篇

    ES6 你可能不知道的事 – 基础篇 转载 作者:淘宝前端团队(FED)- 化辰 链接:taobaofed.org/blog/2016/07/22/es6-basics/ 序 ES6,或许应该叫 ES ...

  2. 移动端https抓包那些事--进阶篇

    上一次和大家介绍了手机端https抓包的初级篇,即在手机未root或者未越狱的情况下如何抓取https流量,但是当时分析应用时会发现,好多应用的https的流量还是无法抓取到,这是为什么呢? 主要原因 ...

  3. sap模块有哪些_SAP那些事-实战篇-21-关于COPA模块的总结

    我个人对于COPA的理解还是数据收集器,以前SAP各模块底层还没有打通的情况下,需要把数据统一进行一个归集,以便于分析一些数据,COPA就是出于这个目的设计的,可以理解为一个简单的数据仓库,这个里面的 ...

  4. sap 标准委外和工序委外_SAP那些事-实战篇-74-公司间委外的几种方式探讨

    我们在<SAP那些事-实战篇-22-关于公司间业务的总结>这一篇中对公司间的转包业务曾经进行过描述,不过这一篇中主要谈到的是SAP中标准的方案,而且是从一方(委托方)的角度来谈,这一篇中我 ...

  5. SAP那些事-职业篇-1-想做顾问如何入门

    如果您觉得这篇文章对你所有帮助的话,您的顺手点赞和转发将是对作者持续发文的重要动力,您的支持和鼓励很重要! 所有文章在公众号"MZ信息化咨询杂谈"同步更新! ​郑重声明:本博客所发 ...

  6. SAP那些事-实战篇-1-号码段配置和维护

    ​如果您觉得这篇文章对你所有帮助的话,您的顺手点赞和转发将是对作者持续发文的重要动力,您的支持和鼓励很重要! 所有文章在公众号"MZ信息化咨询杂谈"同步更新!​ ​郑重声明:本博客 ...

  7. 第三方支付兼并出海浪潮 | 发展趋势篇

    本篇文章给大家介绍第三方支付行业发展趋势.   第三方支付行业发展趋势 我国第三方支付行业加快增长,从2013年起,第三方支付市场的交易规模平均以50%的年均增速增长.2017年,我国第三方支付行业总 ...

  8. 微信支付之JSAPI开发-第二篇:业务流程详解与方案设计

    微信支付流程 流程: 上图的网址为:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_4 如上图所示,微信网页支付的具体流程大致分为 ...

  9. SAP那些事-职业篇-2-AI能不能替代SAP顾问

    如果您觉得这篇文章对你所有帮助的话,您的顺手点赞和转发将是对作者持续发文的重要动力,您的支持和鼓励很重要! 所有文章在公众号"MZ信息化咨询杂谈"同步更新! ​郑重声明:本博客所发 ...

最新文章

  1. 机器学习视觉图像算法工程师--面试笔试--常考知识点乱找总结
  2. cellphonedb 及其可视化
  3. 精选案例 | “虫虫音乐”如何做到搜索CTR提高150%
  4. python从入门到实践课后题_Python 从入门到实践 函数篇 8-6-8习题
  5. 计算机视觉实战(十五)背景建模 (附完整代码)
  6. CTF加密题型解析:RSA算法的CTF解法之一
  7. python 利用栈实现复杂计算器
  8. React 组件间通讯
  9. 2016 计算机控制技术试题,计算机控制技术试题
  10. 「Head First」编程系列丛书
  11. 机器学习教程 之 Boosting 与 bagging:集成学习框架
  12. js实现addClass、removeClass方法
  13. Ubuntu上安装Firefox浏览器
  14. 播布客 视频教学文件下载方法
  15. 【论文笔记】Question Answering over Freebase with Multi-Column Convolutional Neural Networks
  16. PWM控制LED亮度变化的原理(超详解)
  17. 计算机文档排版考试,Word和WPS通用的文档排版技巧
  18. 【asAI创新】华为CloudIVS轻量云:借力打力,四两拨千斤
  19. 非企用户该如何推广?什么事非企户呢?
  20. 医院对讲管理his系统服务器,医院智能化医护对讲系统建设技术方案.doc

热门文章

  1. 69节入门python_小渣渣学习笔记 python day69 【Django】
  2. ps aux mysql_ps -aux的错误用法
  3. Spring框架学习,day02
  4. 分形——自然界的几何学
  5. android 评测软件,Android平台五款主流在线视频软件横向评测
  6. 深圳国际智能家居展览会
  7. 恐龙世界游戏-恐龙百科世界乐园游戏
  8. 关于SPING与EJB的胡言乱语
  9. 【buildroot】buildroot使用总结
  10. 西门子PLC产生随机数