Ir al contenido

SDK para navegador

@wodira/browserFrontend · publishable keys · Stripe Checkout
Ventana de terminal
pnpm add @wodira/browser
import { createWodiraBrowserClient } from '@wodira/browser';
const wodira = createWodiraBrowserClient({ publishableKey: 'wpk_live_...' });
const session = await wodira.createRegistrationCheckoutSession({
eventId: 'event_...',
categoryId: 'cat_...',
purchaserEmail: 'buyer@example.com',
purchaserName: 'Buyer Name',
teamName: 'Team Name',
termsAccepted: true,
waiversAccepted: { waiver_123: true },
idempotencyKey: crypto.randomUUID(),
successUrl: 'https://organizador.com/gracias',
cancelUrl: 'https://organizador.com/cancelado',
athletes: [
{
fullname: 'Ada Lovelace',
idNumber: '12345678A',
email: 'ada@example.com',
phone: '+34600000000',
gender: 'FEMALE',
birthDate: '1990-01-01',
},
],
});
if (session.sessionUrl) window.location.href = session.sessionUrl;

Lista eventos publicados disponibles para la publishable key. Úsalo en webs de organizadores para mostrar carreras, competiciones o eventos vendibles.

const events = await wodira.searchEvents({ search: 'Madrid', limit: 20 });

Obtiene el detalle público de un evento, incluyendo categorías, campos públicos, waivers y suplementos activos.

const event = await wodira.getEvent('event_123');

Devuelve cards de precio públicas para pintar categorías, cupos, precio activo y tiers antes de iniciar el formulario.

const pricing = await wodira.getPricingCards('event_123');

Calcula un resumen del checkout antes de redirigir a Stripe: precio base, suplementos seleccionados, cupón aplicado, total y moneda.

const summary = await wodira.getRegistrationSummary({
categoryId: 'cat_123',
purchaserEmail: 'buyer@example.com',
selectedSupplementIds: ['supp_123'],
promocode: 'EARLY',
});

Crea una Stripe Checkout Session para inscripciones públicas. La web externa debe redirigir a sessionUrl; no se redirige a WODira para pagar.

const session = await wodira.createRegistrationCheckoutSession({
eventId: 'event_123',
categoryId: 'cat_123',
purchaserEmail: 'buyer@example.com',
purchaserName: 'Buyer Name',
termsAccepted: true,
waiversAccepted: { waiver_123: true },
idempotencyKey: crypto.randomUUID(),
successUrl: 'https://organizador.com/gracias',
cancelUrl: 'https://organizador.com/cancelado',
athletes: [{ fullname: 'Ada Lovelace', email: 'ada@example.com' }],
});
window.location.href = session.sessionUrl;