Saltar al contenido principal

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 });
}