系统架构设计师 · 高频练习

支付回调接口为什么要做幂等设计?

高级 单选题 第 172 题 中等 系统架构设计师幂等设计支付回调分布式系统
题目

第三方支付平台在未收到商户系统确认时,可能多次重试发送同一笔支付成功回调。如果商户系统每收到一次回调就重复发货或重复加款,风险很大。较合理的架构设计是()。

A 基于订单号或交易号做幂等控制,已处理成功的回调不重复执行业务动作
B 每次回调都生成一笔新订单
C 关闭交易记录,避免重复判断
D 允许没有签名的回调直接修改订单状态
题目类型:原创高频考点题 用途:用于帮助理解系统架构设计师相关考点和答案解析,不等同于官方真题。
书木兰刷题练习 适合懒人、小白的刷题通关平台
正确答案
A
答案解析

支付回调、消息消费、订单提交等场景都可能发生重试。幂等设计要求同一业务请求执行一次和执行多次的最终业务结果一致。对支付回调而言,应根据订单号、支付交易号、回调流水等唯一标识判断是否已处理,避免重复发货、重复入账或重复变更状态。

选项分析

A

正确。用唯一业务标识做幂等控制,可以防止重复处理。

B

错误。同一笔支付回调不应生成多笔新订单。

C

错误。交易记录是幂等判断和审计的重要依据。

D

错误。支付回调还需要签名校验,不能无条件信任。

本题为什么容易错

有些同学把重试只看成网络问题,忽略业务副作用。架构题里,重试和幂等通常成对出现:可以重试,但业务动作不能重复伤人。

先看结论

简短答案

支付回调接口为什么要做幂等设计,正确答案是 A(基于订单号或交易号做幂等控制,已处理成功的回调不重复执行业务动作)。支付回调、消息消费、订单提交等场景都可能发生重试。幂等设计要求同一业务请求执行一次和执行多次的最终业务结果一致。对支付回调而言,应根据订单号、支付交易号、回调流水等唯一标识判断是否已处理,避免重复发货、重复入账或重复变更状态。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
基于订单号或交易号做幂等控制,已处理成功的回调不重复执行业务动作 本题正确答案 正确。用唯一业务标识做幂等控制,可以防止重复处理。 看到题干核心场景时优先联想到它
每次回调都生成一笔新订单 本题干扰项 错误。同一笔支付回调不应生成多笔新订单。 看到该词不要急着选,先判断是否真正解决题干问题
关闭交易记录,避免重复判断 本题干扰项 错误。交易记录是幂等判断和审计的重要依据。 看到该词不要急着选,先判断是否真正解决题干问题
允许没有签名的回调直接修改订单状态 本题干扰项 错误。支付回调还需要签名校验,不能无条件信任。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 每次回调都生成一笔新订单:错误。同一笔支付回调不应生成多笔新订单。
  • 关闭交易记录,避免重复判断:错误。交易记录是幂等判断和审计的重要依据。
  • 允许没有签名的回调直接修改订单状态:错误。支付回调还需要签名校验,不能无条件信任。
复习

知识点详解

分布式系统是系统架构设计师考试中需要结合场景理解的考点。围绕“支付回调接口为什么要做幂等设计”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“第三方支付平台在未收到商户系统确认时,可能多次重试发送同一笔支付成功回调。如果商户系统每收到一次回调就重复发货或重复加款,风险很大。较合理的架构设计是()”,它指向的核心答案是 A(基于订单号或交易号做幂等控制,已处理成功的回调不重复执行业务动作)。

备考速记

备考速记:题干如果强调“分布式系统”中的关键目标,就先联想到 分布式系统;如果选项里出现 每次回调都生成一笔新订单、关闭交易记录,避免重复判断、允许没有签名的回调直接修改订单状态,不要只看名称熟悉,要判断它们是否真正对应题干场景。

分布式系统在分布式系统场景中的作用

分布式系统在本题中的核心价值,是解决“第三方支付平台在未收到商户系统确认时,可能多次重试发送同一笔支付成功回调。如果商户系统每收到一次回调就重复发货或重复加款,风险很大。较合理的架构设计是()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出分布式系统场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查分布式系统的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把分布式系统和每次回调都生成一笔新订单、关闭交易记录,避免重复判断、允许没有签名的回调直接修改订单状态放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
分布式系统在系统架构设计师软考中的考法

软考选择题通常不会只考概念定义,还会把分布式系统放到分布式系统场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。

解题思路

题干的风险非常典型:第三方为了可靠送达会重试,商户系统不能把每次重试都当成新业务。老师讲分布式可靠性时常说:网络会抖,消息会重,接口就要能扛住重复请求。

考点定位

重试场景要考虑幂等,尤其是支付、库存、发货、账户余额等关键业务动作。

易错提醒

  • 没有唯一交易号或幂等键。
  • 先发货再判断订单是否已处理。
  • 忽略签名校验、状态机和事务一致性。

备考提示

  • 系统架构题看到重复请求、消息重投、支付回调,优先想到幂等。
  • 幂等常与唯一约束、状态机、去重表、分布式锁、事务消息一起考。

你可能还想了解

  • 支付回调接口为什么要做幂等设计?
  • 分布式系统是什么?
  • 分布式系统在系统架构设计师考试中怎么考?
  • 系统架构设计师分布式系统题怎么理解?
  • 支付回调为什么要幂等怎么考?
  • 接口幂等设计怎么做怎么考?

本文小结

本题核心考点是分布式系统在分布式系统场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(基于订单号或交易号做幂等控制,已处理成功的回调不重复执行业务动作)。