当前位置:首页 > 文章列表 > 数据库 > MySQL > 浅谈支付系统开发基本流程

浅谈支付系统开发基本流程

来源:SegmentFault 2023-01-09 18:32:59 0浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习数据库相关编程知识。下面本篇文章就来带大家聊聊《浅谈支付系统开发基本流程》,介绍一下MySQL、go、PHP、支付、程序员,希望对大家的知识积累有所帮助,助力实战开发!

支付系统是每个系统都必备的模块之一,也是众多模块中最核心的功能,如果支付出现问题,那么意味着会直接影响到产品收益,事故严重程度高。

本篇我们聊聊支付系统的基本流程,它们分别为付款、通知(包括同步通知、异步通知)、查询、退款以及对账,下方是本篇文章会用到的流程交互图。

image.png

付款

image.png

先聊聊发起支付前需要做哪些事

  1. 用户在选中心仪的商品后,首先我们创建订单,创建订单的基本信息,如商品的名称、价格、数量以及用户的收货地址等后是我们后续需要的参数
  2. 其次如果系统中集成多种支付方式的话,我们会有一个收银台的页面,供用户选择使用某个支付方式完成支付,例如支付宝、微信、银联等
  3. 在用户完成选择后,我们根据三方支付系统需要的参数组装好,向三方发起支付请求,一般需要的信息大致包括 订单号、商品的名称、价格、同步&异步通知地址,有部分支付方式也需要用户的收货地址、用户的银行卡信息(卡号、cvv、日期)当然用户隐私信息是需要加密传输的,总而言之,三方支付系统需要什么,我们就传什么。
  4. 当一切准备就绪,我们通过三方支付系统提供的PayUrl发起付款。

通知

image.png

用户无论付款成功或失败,三方都会至少给到我们一个同步通知,那么我们先了解下什么是同步通知

  1. 如上图所示,当三方系统确认用户已完成付款,会根据我们在付款时提供的通知地址,向我方发起直接跳转回本站的POST或者GET请求,请求附带三方传输给我们一些关键交易信息,如果是移动端这类通知会在调用支付的Callback的回调结果内
  2. 通知大致的参数有我们传输的大部分信息、交易状态、第三方交易号、签名(用于双方系统验证来源)和一些可能暂时用不到的信息
  3. 当我们接收到回传的数据后,首先进行校验,保证不是欺诈请求,校验的内容无非是双方系统确定的签名算法,还有一些关键字段,例如金额是否匹配等。
  4. 我们不能完全信任三方系统发送的信息,在我们接收到通知后,如果三方系统有提供查询接口,我们还是需要通过查询方式,反查三方订单交易关键信息,以保证付款确实顺利完成。
  5. 当验证完成后,根据自己系统逻辑,将订单进行后续流转

image.png

了解完同步通知后,我们再看下异步通知,有部分朋友比较疑惑,有同步通知了,那么为什么还需要异步通知,你可以暂且理解为同步通知实际是完成了付款流程,这是一个瞬发的过程,三方系统也是暂时认为付款已完成,但如果出现异常或者用户在三方秒退款或者申诉,那么我们的流程将会受到影响。

如上图所示,三方系统一般也需要归档,就是系统完成全部校验后,确保交易安全完成后,叫交易加入数据库中,这时,整个付款流程才彻底完成。这时三方会通过我们提供的异步通知地址(有时异步和同步通知是一个地址),通知我们付款确实已经完成。

我们接收到三方后,依旧先进行校验,防止请求欺诈,而后确保信息正确性,依旧是去请求查询接口,异步通知与同步通知最大的区别是我们在确保信息完整并正确后,需向三方系统返回一个双方系统约定的值,可能是HTTPCODE = 200 ,也或者Document内写个200或者完成等等,不同三方系统,要求不同。

退款

image.png

有买就有退,退款占支付模块一半的逻辑,大致流程与支付时没有太大区别,如上图所示。

只是大部分三方系统,退款一般通过HTTP Reponse返回结果,并不会有同步通知,我们根据用户发起退款的商品金额创建退款单,并组装必要参数后,请求三方提供的RefundUrl,完成退款申请,注意,是退款申请,为什么是退款申请而不是退款呢?这实际是一个时效的问题,一般退款都不是实时的,因为三方系统可能还有下方链路(例如下方可能对接的某银行),那么退款是需要一条链路的自动审批或者人工审批的,当全链路确认可以退款时,才可以完成退款。

image.png

因为是非实时的,所以无同步通知,但大部分系统内是有异步通知的,当三方系统确认退款完成后,会根据我们发起支付时传输的异步通知地址,通知我方退款完成,并携带必要参数。

当我们接收后,依旧先进行校验,以防欺诈,而后还是需要通过三方提供的查询接口查询退款情况,并根据自身系统逻辑,完成退款完成的打标,并通知用户。

当然,如果没有异步通知的话,我们可以通过延时队列,失败队列重试或者定时脚本的方式,使用查询接口,不定时向三方请求退款结果。

对账

支付或者退款完成后,还没有结束,我们应当定时拉取账单,大部分三方系统都会提供例如bill的接口,获取账单后,我们要用我方系统数据与三方系统数据对比,确保每笔交易金额、交易时间、交易状态完全正确,当遇到错误的地方,就应该去查找问题点了。

只有对账完成后,才是正确完成了整个交易,否则你公司的财务早晚会找到你头上的,到那时这件事情就不仅仅是程序实现那么简单了。

致谢

感谢你看到这里 ,希望本篇文章可以帮到你,谢谢。

以上就是《浅谈支付系统开发基本流程》的详细内容,更多关于mysql的资料请关注golang学习网公众号!

版本声明
本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
WoShop直播+短视频带货多商户直播商城系统源码APP小程序源码,前后端全开源无加密,放心商用WoShop直播+短视频带货多商户直播商城系统源码APP小程序源码,前后端全开源无加密,放心商用
上一篇
WoShop直播+短视频带货多商户直播商城系统源码APP小程序源码,前后端全开源无加密,放心商用
详解在Linux中同时安装配置并使用 MySQL5.7 和 MySQL8.0
下一篇
详解在Linux中同时安装配置并使用 MySQL5.7 和 MySQL8.0
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    508次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    497次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 笔灵AI生成答辩PPT:高效制作学术与职场PPT的利器
    笔灵AI生成答辩PPT
    探索笔灵AI生成答辩PPT的强大功能,快速制作高质量答辩PPT。精准内容提取、多样模板匹配、数据可视化、配套自述稿生成,让您的学术和职场展示更加专业与高效。
    14次使用
  • 知网AIGC检测服务系统:精准识别学术文本中的AI生成内容
    知网AIGC检测服务系统
    知网AIGC检测服务系统,专注于检测学术文本中的疑似AI生成内容。依托知网海量高质量文献资源,结合先进的“知识增强AIGC检测技术”,系统能够从语言模式和语义逻辑两方面精准识别AI生成内容,适用于学术研究、教育和企业领域,确保文本的真实性和原创性。
    22次使用
  • AIGC检测服务:AIbiye助力确保论文原创性
    AIGC检测-Aibiye
    AIbiye官网推出的AIGC检测服务,专注于检测ChatGPT、Gemini、Claude等AIGC工具生成的文本,帮助用户确保论文的原创性和学术规范。支持txt和doc(x)格式,检测范围为论文正文,提供高准确性和便捷的用户体验。
    30次使用
  • 易笔AI论文平台:快速生成高质量学术论文的利器
    易笔AI论文
    易笔AI论文平台提供自动写作、格式校对、查重检测等功能,支持多种学术领域的论文生成。价格优惠,界面友好,操作简便,适用于学术研究者、学生及论文辅导机构。
    40次使用
  • 笔启AI论文写作平台:多类型论文生成与多语言支持
    笔启AI论文写作平台
    笔启AI论文写作平台提供多类型论文生成服务,支持多语言写作,满足学术研究者、学生和职场人士的需求。平台采用AI 4.0版本,确保论文质量和原创性,并提供查重保障和隐私保护。
    35次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码