支付回调处理流程分析|学习笔记

简介: 快速学习支付回调处理流程分析

开发者学堂课程【RocketMQ 知识精讲与项目实战(第二阶段)支付回调处理流程分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/703/detail/12436


支付回调处理流程分析


在完成支付订单创建之后,就要把用户的请求上传到第三方平台。用户在第三方支付平台完成支付后,第三方会回调告诉用户支付的结果,在此我们完善一下支付回调之后应该做的事情。

image.png

首先要根据回调的参数判断用户支付的状态,如果是支付成功的话,流程可以继续往下走,如果是支付失败或者是支付异常,这个支付的流程是要返回去的,等待用户进行下一次的成功支付。

下一步,当支付成功后需要更新一下支付订单的状态,把它改成已支付。

image.png

在创建支付订单时,当时设置的是未支付,当用户支付以后,要将支付的状态改为已支付。

在改完以后还需要更改订单表的信息,还要去操作用户表的用户积分等等,如果下一步和以后的步骤都是通过远程的 RPC 来完成的,那势必会造成一个请求堆积的问题,所以对于下边的更改订单表、更改用户的用户表加积分,包括其他的一些,如果想记录状态的话,想记录用户的支付状态的话都是通过发消息进行处理,所以在这里要先创建一个支付成功的消息。

然后把消息创建出来之后,直接进行发送其实没有太大的问题,但是要考虑一个细节,如果更新订单状态为已支付的消息发送失败,MQ 如果出现了问题,这样数据就没有传输到订单系统,没有传输到用户的服务。所以要把要发送的消息保存到数据库,然后再去 MQ 中去发,发送过去后可以获得发送成功的消息,也就是一个状态,如果可以判断这个状态发送成功就可以把这个数据库里的信息删除掉。

为了保证支付成功的消息可以发送成功,可以先在消息的发送方进行数据库的持久化,然后去发,发成功之后又根据回弹的结果进行数据库信息的删除,这样就可以保证百分百的支付信息发送成功。

这就是关于支付回调处理分析的一个流程。

相关文章
需求分析有点难,ChatGPT来帮你
使用ChatGPT辅助进行论坛Web页面搜索功能需求分析,生成PRD文档,包括改进搜索算法、高级搜索选项、搜索结果页面改进和响应时间优化。在分析阶段,关注了每个需求的细节,如关键词匹配、个性化推荐、用户界面设计和性能优化。作为测试工程师,提炼出测试点,包括异常场景测试,确保系统在各种条件下稳定运行。实践中强调明确需求、拆分任务、修正回复和角色定位。
|
机器学习/深度学习 监控 算法
信用风险评估评分卡建模方法及原理| 学习笔记
快速学习信用风险评估评分卡建模方法及原理。
信用风险评估评分卡建模方法及原理| 学习笔记
|
11月前
|
机器学习/深度学习 人工智能 安全
什么是医院不良事件管理系统?PDCA分析法在系统中具体如何应用?
医院不良事件管理系统是用于识别、分析和预防医疗过程中各类安全事件的工具,旨在提升患者安全、保障医疗质量。系统覆盖患者安全、用药、设备、护理等多个场景,结合PDCA循环推动持续改进,并通过自动化与智能分析提升效率。
668 0
|
人工智能 运维 监控
AI辅助的运维流程自动化:实现智能化管理的新篇章
AI辅助的运维流程自动化:实现智能化管理的新篇章
1901 22
|
开发工具 git Python
安装和使用`libnum`是一个用于数字理论函数的Python库
【6月更文挑战第19天】`libnum`是Python的数字理论函数库。安装可通过`git clone`,进入目录后运行`python setup.py install`,也可用`pip install libnum`。示例:使用`int_to_hex`将十进制数42转换为十六进制字符串'2a'。注意,信息可能已过时,应查最新文档以确保准确性。如遇问题,参考GitHub仓库或寻求社区帮助。
502 1
|
NoSQL Redis
蓝易云 - redis报错WRONGTYPE Operation against a key holding the wrong kind of value
解决这个问题的方法是检查你的代码,确保你对每个键使用的命令与该键的类型匹配。你可以使用 `TYPE`命令来确定一个键的类型。例如,`TYPE mykey`将返回 `mykey`的类型。
1060 3
订单支付异常情况处理
订单支付异常情况处理
1021 1
|
存储 缓存 安全
Go Channel详解
Go Channel详解
806 1
|
机器学习/深度学习 算法 Python
深度学习入门(3)神经网络参数梯度的计算方式
深度学习入门(3)神经网络参数梯度的计算方式
深度学习入门(3)神经网络参数梯度的计算方式