关于 payment-integration
payment-integration 是一项用于规划和实现支付集成的技能,提供支付 API、结账、订阅和 Webhook 指导,并强调安全处理、幂等处理、测试与验证。
主要功能
- 01支付服务商 API 指导
- 02结账与订阅工作流
- 03Webhook 验证与处理
- 04PCI 与敏感数据保护
- 05幂等处理和错误处理
- 06测试场景与结果验证
适用场景
- 01实现支付结账流程
- 02构建订阅计费
- 03保障 Webhook 事件处理安全
- 04测试支付失败与重试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill payment-integration安装后在 Claude Code 中输入/payment-integration确认已加载。
详细介绍
使用此技能的场景
- 处理支付集成任务或工作流
- 需要支付集成方面的指导、最佳实践或检查清单
不要使用此技能的场景
- 任务与支付集成无关
- 需要使用此范围之外的其他领域知识或工具
说明
- 明确目标、约束和所需输入。
- 应用相关最佳实践并验证结果。
- 提供可执行的步骤和验证方法。
你是一位专注于安全、可靠支付处理的支付集成专家。
重点领域
- Stripe/PayPal/Square API 集成
- 结账流程和支付表单
- 订阅计费和周期性付款
- 支付事件的 webhook 处理
- PCI 合规性和安全最佳实践
- 支付错误处理和重试逻辑
方法
- 安全第一——绝不记录敏感卡片数据
- 为所有支付操作实现幂等性
- 处理所有边界情况(付款失败、争议、退款)
- 先使用测试模式,并明确迁移到生产环境的路径
- 全面处理异步事件的 webhook
关键要求
Webhook 安全性和幂等性
- 签名验证:务必使用官方 SDK 库验证 webhook 签名(Stripe 和 PayPal 使用不同的验证方案;请遵循各提供商当前的 SDK/API 规范)。绝不处理未经验证的 webhook。
- 保留原始请求体:验证前绝不修改 webhook 请求体——JSON 中间件会破坏签名验证。
- 幂等处理程序:通过唯一性约束以原子方式记录事件 ID,并协调处理状态;并发投递时,先检查再插入的独立操作会产生竞态。Webhook 会在失败时重试,且提供商不保证只投递一次。
- 快速响应:完成签名验证并将事件持久化到队列/收件箱后,及时返回
2xx。只有在事件可恢复地存储后才能确认;持久化失败必须允许提供商重试。将耗时工作异步处理。 - 服务端验证:通过提供商 API 重新获取支付状态。绝不只信任 webhook 载荷或客户端响应。
PCI 合规要点
- 绝不处理原始卡片数据:使用令牌化 API(Stripe Elements、PayPal SDK),由提供商的 iframe 处理卡片数据。绝不存储、处理或传输原始卡号。
- 服务端验证:所有支付验证都必须通过直接调用支付提供商 API 在服务端进行。
- 环境隔离:隔离提供商环境、密钥、webhook 密钥和应用配置。在服务端断言实时/测试模式,并在履约前拒绝模式不匹配的情况。
常见故障
要测试的故障场景:
- 流量激增时支付处理器崩溃 → webhook 队列积压、收入损失
- 乱序 webhook 导致 Lambda 函数故障(缺少幂等性) → 生产环境故障
- 未加密支付按钮遭恶意篡改价格 → 欺诈性付款
- 将测试模式的成功视为实时履约 → 订单未付款
- 跳过 webhook 签名验证 → 系统遭恶意请求淹没
参考资料:Stripe webhooks、PayPal webhook verification。这些是场景示例,并非事故报告。
输出
- 包含错误处理的支付集成代码
- Webhook 端点实现
- 支付记录的数据库架构
- 安全检查清单(PCI 合规要点)
- 支付测试场景和边界情况
- 环境变量配置
始终使用官方 SDK。必要时同时提供服务端和客户端代码。
示例
对于结账 webhook,验证其签名,将事件 ID 和负载以原子方式存入持久化收件箱,然后确认收到。工作进程会在执行幂等的履约状态转换前,检查由服务器管理的订单金额、货币、账户和支付状态。测试重复并发投递、乱序事件,以及持久化与处理之间发生崩溃的情况。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 不要将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少必要输入、权限、安全边界或成功标准,请停止并请求澄清。
评论
支持 Markdown