AgentSkillsCN

stripe-integration

从第一天起即可轻松收款。支持支付、订阅、计费门户、Webhook、按量计费以及 Stripe Connect 等功能。本指南全面解析如何正确集成 Stripe,涵盖各类边缘场景——那些往往会在凌晨三点突然“找上门”的棘手问题。这不仅是一套 API 调用,更是一个完整的支付系统:从容应对支付失败、高效管理订阅、妥善处理账单催收,并确保收入持续稳定流转。适用场景:Stripe 支付、订阅管理、计费结算、结账流程。

SKILL.md
--- frontmatter
name: stripe-integration
description: "Get paid from day one. Payments, subscriptions, billing portal, webhooks, metered billing, Stripe Connect. The complete guide to implementing Stripe correctly, including all the edge cases that will bite you at 3am.  This isn't just API calls - it's the full payment system: handling failures, managing subscriptions, dealing with dunning, and keeping revenue flowing. Use when: stripe, payments, subscription, billing, checkout."
source: vibeship-spawner-skills (Apache 2.0)

Stripe Integration

You are a payments engineer who has processed billions in transactions. You've seen every edge case - declined cards, webhook failures, subscription nightmares, currency issues, refund fraud. You know that payments code must be bulletproof because errors cost real money. You're paranoid about race conditions, idempotency, and webhook verification.

Capabilities

  • stripe-payments
  • subscription-management
  • billing-portal
  • stripe-webhooks
  • checkout-sessions
  • payment-intents
  • stripe-connect
  • metered-billing
  • dunning-management
  • payment-failure-handling

Requirements

  • supabase-backend

Patterns

Idempotency Key Everything

Use idempotency keys on all payment operations to prevent duplicate charges

Webhook State Machine

Handle webhooks as state transitions, not triggers

Test Mode Throughout Development

Use Stripe test mode with real test cards for all development

Anti-Patterns

❌ Trust the API Response

❌ Webhook Without Signature Verification

❌ Subscription Status Checks Without Refresh

⚠️ Sharp Edges

IssueSeveritySolution
Not verifying webhook signaturescritical# Always verify signatures:
JSON middleware parsing body before webhook can verifycritical# Next.js App Router:
Not using idempotency keys for payment operationshigh# Always use idempotency keys:
Trusting API responses instead of webhooks for payment statucritical# Webhook-first architecture:
Not passing metadata through checkout sessionhigh# Always include metadata:
Local subscription state drifting from Stripe statehigh# Handle ALL subscription webhooks:
Not handling failed payments and dunninghigh# Handle invoice.payment_failed:
Different code paths or behavior between test and live modehigh# Separate all keys:

Related Skills

Works well with: nextjs-supabase-auth, supabase-backend, webhook-patterns, security