支付系统-出金-【资金安全铁律】

简介: 出金第一铁律---------明确失败才失败 。 出金最怕失败,极易出现重复出款

【资金安全铁律】

🍀出金第一铁律---------明确失败才失败 。 出金最怕失败,极易出现重复出款

反例:if(xx != SUCCESS) setPayStatus(FAIL);

正例:if(xx==FAIL) setPayStatus(FAIL);

🍀改支付状态必须基于明确的付款状态字段,而不是其他code甚至msg

擦亮眼睛,注意payStatus 与 code 的区别,别再傻傻分不清了。

反例:if(pingAnResponse.code == '404' && pingAnResponse.msg == '订单不存在') setPayStatus(FAIL);

正例:if(pingAnResponse.status == 'FAIL') setPayStatus(FAIL);

🍀下发同步请求,不能返回支付状态

下发同步请求接口,我们不能返回payStatus(正确姿势是响应体里不包含payStatus字段 / 实体对象里不能定义payStatus字段)

🍀终态时,状态不可再发生变更。日常维护中,如有,必须人为介入

反例1:将失败的订单置为成功

反例2:将成功的订单置为失败(杀头)

🍀支付状态在修改时,使用状态机控制

反例:update order set status='FAIL' where orderId='001'

正例:update order set status='FAIL' where orderId='001' and status='PAYING'

🍀异常非失败。

反例:try{ .. } catch (Exception e) { setPayStatus('FAIL'); }

正例:try{ .. } catch (Exception e) { log.error(e); }

🍀业务幂等

反例:下游通道重复回调,我们重复修改状态,重复记账。

正例:使用状态锁保证幂等,先判断订单是否为终态。

目录
相关文章
|
6月前
|
测试技术 UED
全新开源通义千问Qwen3,它来了!
Qwen3是通义千问系列的最新模型,融合推理与非推理模式,兼具QwQ和Instruct模型能力。提供多种尺寸,包括235B-A22B、30B-A3B及六个Dense模型,大幅提升数学、代码、逻辑推理和对话能力,达到业界领先水平。旗舰模型Qwen3-235B-A22B在多场景测试中表现优异,小型模型如Qwen3-4B性能媲美大模型。用户可在阿里云百炼平台免费体验各100万Token。
6211 4
全新开源通义千问Qwen3,它来了!
|
SQL 存储 关系型数据库
如何巧用索引优化SQL语句性能?
本文从索引角度探讨了如何优化MySQL中的SQL语句性能。首先介绍了如何通过查看执行时间和执行计划定位慢SQL,并详细解析了EXPLAIN命令的各个字段含义。接着讲解了索引优化的关键点,包括聚簇索引、索引覆盖、联合索引及最左前缀原则等。最后,通过具体示例展示了索引如何提升查询速度,并提供了三层B+树的存储容量计算方法。通过这些技巧,可以帮助开发者有效提升数据库查询效率。
1069 2
宜搭子表单内数据提交时如何与历史数据进行去重效验?
宜搭子表单内数据提交时如何与历史数据进行去重效验?不是仅仅在当前提交页面内的子表单数据进行重复效验。
宜搭子表单内数据提交时如何与历史数据进行去重效验?
|
人工智能 运维 监控
独家 | 蚂蚁金服TRaaS技术风险防控平台解密
蚂蚁金服技术风险防控平台TRaaS的前世今生。
6064 0
|
SQL 缓存 关系型数据库
SqlAlchemy 2.0 中文文档(四十一)(7)
SqlAlchemy 2.0 中文文档(四十一)(8)
173 5
|
存储 SQL 关系型数据库
实时计算 Flink版操作报错合集之报错:WARN (org.apache.kafka.clients.consumer.ConsumerConfig:logUnused)这个错误如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
648 3
|
安全 虚拟化 Windows
|
监控 Shell Linux
多行重定向,expect,字符串处理,高级变量,脚本工具
多行重定向,expect,字符串处理,高级变量,脚本工具
|
数据可视化 数据挖掘 Python
Python对阿里巴巴、谷歌、腾讯等六家公司股票数据进行分析与可视化实战(附源码 超详细)
Python对阿里巴巴、谷歌、腾讯等六家公司股票数据进行分析与可视化实战(附源码 超详细)
542 0