侧边栏壁纸
博主头像
ZOUXS的空间博主等级

人生苦短,我学python

  • 累计撰写 23 篇文章
  • 累计创建 24 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

支付系统知识点

zouxs
2026-05-22 / 0 评论 / 0 点赞 / 4 阅读 / 4849 字
温馨提示:
本文最后更新于 2026-05-22,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

目录

  1. 支付整体流程
  2. 幂等性设计
  3. 支付安全机制
  4. 回调处理
  5. 订单状态机
  6. 常见支付对接场景
  7. 面试高频扩展知识点

1. 支付整体流程

1.1 标准支付链路(必背)

下单 → 生成订单 → 校验库存/价格 → 创建支付单 → 调起第三方支付 → 用户付款 → 支付回调 → 验签 → 修改订单状态 → 发货/报告生成/业务后续

1.2 核心角色

  • 商户系统(我方)
  • 支付渠道(微信/支付宝/通联/银联/工行)
  • 用户
  • 财务对账系统

1.3 关键目标

  • 不丢单
  • 不重复支付
  • 不篡改金额
  • 资金安全
  • 状态一致

2. 幂等性设计

2.1 什么是幂等

同一请求执行多次,结果一致,不会重复支付、重复发货、重复生成报告

2.2 为什么必须做

  • 网络重试
  • 回调重入
  • 页面刷新
  • 接口重放

2.3 实现方案

  1. 订单号唯一
  2. 支付流水号唯一
  3. 状态机前置判断
  4. 分布式锁
  5. 数据库唯一索引

2.4 面试必答

支付接口必须保证幂等,任何情况下都不能重复扣款、重复发货。


3. 支付安全机制

3.1 签名验签

  • 所有请求/回调必须做签名验证
  • 防止篡改金额、订单号、商品信息
  • 秘钥加密存储,不上传、不打印、不记录日志

3.2 参数校验

  • 订单号、金额、商品、用户必须强校验
  • 前端传金额无效,后端必须以数据库为准

3.3 防篡改

  • 金额不可信
  • 用户不可信
  • 第三方参数不可全信

3.4 传输安全

  • 必须 HTTPS
  • 敏感字段加密
  • 不明文传输密钥

4. 回调处理

4.1 回调是支付的核心

支付结果以回调为准,不是前端返回。

4.2 回调处理步骤

  1. 验签
  2. 校验订单号、金额
  3. 判断订单状态
  4. 执行业务(发货/开通服务/生成报告)
  5. 返回成功(success)
  6. 记录日志

4.3 异常处理

  • 回调失败自动重试
  • 超时未回调主动查询
  • 漏单兜底机制

5. 订单状态机

5.1 标准状态

  • 待支付
  • 支付中
  • 已支付
  • 已取消
  • 已退款
  • 已完成

5.2 状态流转严格控制

  • 只能单向流转
  • 已支付不能重复支付
  • 取消后不能再支付
  • 退款必须走退款接口

6. 常见支付对接场景

6.1 微信支付

JSAPI、小程序支付、H5、Native

6.2 支付宝

电脑网站、手机网站、小程序

6.3 通联支付

企业支付、代付、分账

6.4 工行支付

对公、大额、医疗行业常用

6.5 你项目可背诵

我对接过微信支付、支付宝、通联、工行支付,封装统一支付SDK,支持统一下单、统一回调、统一对账。


7. 面试高频扩展知识点

7.1 掉单如何处理

  • 主动查询接口
  • 定时任务兜底
  • 对账系统

7.2 退款流程

  • 原路退回
  • 必须验权
  • 记录退款流水

7.3 对账

  • 每日自动对账
  • 订单金额 vs 渠道流水
  • 差异告警、人工处理

7.4 面试必背总结

支付系统核心:安全、幂等、验签、状态一致、不丢单、可对账

相关链接

0

评论区