Implement subscription billing with Stripe in Google Antigravity including webhooks and customer portal
# Stripe Billing for Google Antigravity
Subscription billing is essential for SaaS applications. This guide establishes patterns for Stripe subscriptions in Google Antigravity projects.
## Checkout Session
```typescript
import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);
export async function POST(req: Request) {
const { priceId, userId } = await req.json();
const session = await stripe.checkout.sessions.create({
mode: "subscription",
payment_method_types: ["card"],
line_items: [{ price: priceId, quantity: 1 }],
success_url: `${process.env.NEXT_PUBLIC_APP_URL}/dashboard?success=true`,
cancel_url: `${process.env.NEXT_PUBLIC_APP_URL}/pricing`,
metadata: { userId },
});
return Response.json({ url: session.url });
}
```
## Webhook Handler
```typescript
export async function POST(req: Request) {
const body = await req.text();
const signature = headers().get("stripe-signature")!;
const event = stripe.webhooks.constructEvent(body, signature, process.env.STRIPE_WEBHOOK_SECRET!);
switch (event.type) {
case "checkout.session.completed":
await handleSubscriptionCreated(event.data.object);
break;
case "customer.subscription.deleted":
await handleSubscriptionCanceled(event.data.object);
break;
}
return Response.json({ received: true });
}
```
## Customer Portal
```typescript
const session = await stripe.billingPortal.sessions.create({
customer: customerId,
return_url: `${process.env.NEXT_PUBLIC_APP_URL}/dashboard`,
});
```
## Best Practices
1. **Webhook verification**: Always verify signatures
2. **Idempotency**: Handle duplicate events
3. **Customer portal**: Let users manage subscriptions
4. **Trial periods**: Support free trials
5. **Usage tracking**: Implement metered billingThis Stripe prompt is ideal for developers working on:
By using this prompt, you can save hours of manual coding and ensure best practices are followed from the start. It's particularly valuable for teams looking to maintain consistency across their stripe implementations.
Yes! All prompts on Antigravity AI Directory are free to use for both personal and commercial projects. No attribution required, though it's always appreciated.
This prompt works excellently with Claude, ChatGPT, Cursor, GitHub Copilot, and other modern AI coding assistants. For best results, use models with large context windows.
You can modify the prompt by adding specific requirements, constraints, or preferences. For Stripe projects, consider mentioning your framework version, coding style, and any specific libraries you're using.