SDK para navegador
@wodira/browserFrontend · publishable keys · Stripe Checkout
Instalación
Sección titulada «Instalación»pnpm add @wodira/browserUso básico
Sección titulada «Uso básico»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;Métodos
Sección titulada «Métodos»searchEventsListar eventos públicosgetEventLeer detalle público de eventogetPricingCardsMostrar categorías y preciosgetRegistrationSummaryPrevisualizar total del checkoutcreateRegistrationCheckoutSessionCrear Stripe Checkout SessionsearchEvents
Sección titulada «searchEvents»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 });- Endpoint:
POST /external/v1/browser/events/search - Credencial:
wpk_live_...conOriginpermitido
getEvent
Sección titulada «getEvent»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');- Endpoint:
GET /external/v1/browser/events/:eventId - Credencial:
wpk_live_...conOriginpermitido
getPricingCards
Sección titulada «getPricingCards»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');- Endpoint:
GET /external/v1/browser/events/:eventId/pricing-cards - Credencial:
wpk_live_...conOriginpermitido
getRegistrationSummary
Sección titulada «getRegistrationSummary»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',});- Endpoint:
POST /external/v1/browser/checkout/registration/summary - Uso recomendado: resumen reactivo en el formulario antes de pagar
createRegistrationCheckoutSession
Sección titulada «createRegistrationCheckoutSession»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;- Endpoint:
POST /external/v1/browser/checkout/registration/session - Seguridad:
successUrlycancelUrldeben pertenecer a un origin permitido - Alternativa UI:
<wodira-checkout-flow>si prefieres Web Components completos