Instalar
pnpm add @onflay/node
Crear cliente
import { Onflay } from '@onflay/node';
const onflay = new Onflay(process.env.ONFLAY_API_KEY!);
Checkout con Price
const session = await onflay.checkoutSessions.create(
{
lineItems: [{ priceId: 'price_...', quantity: 1 }],
customerEmail: 'comprador@ejemplo.com',
successUrl: 'https://tu-app.com/gracias',
cancelUrl: 'https://tu-app.com/cancelado',
metadata: { userId: 'user_123', orderId: 'order_456' },
},
{ idempotencyKey: 'checkout:order_456' }
);
return Response.redirect(session.url, 303);
Ejemplo Next.js
import { NextResponse } from 'next/server';
import { Onflay } from '@onflay/node';
const onflay = new Onflay(process.env.ONFLAY_API_KEY!);
export async function POST(request: Request) {
const body = await request.json();
const session = await onflay.checkoutSessions.create(
{
lineItems: [{ priceId: body.priceId, quantity: 1 }],
customerEmail: body.email,
successUrl: 'https://tu-app.com/gracias',
cancelUrl: 'https://tu-app.com/precios',
metadata: { userId: body.userId },
},
{ idempotencyKey: `checkout:${body.userId}:${body.priceId}` }
);
return NextResponse.json({ url: session.url });
}