Commet
  • Pricing
Log InTry out
Introducción

Inicio rápido

Integrar con Next.jsIntegrar con RemixIntegrar con NuxtIntegrar con SvelteKitIntegrar con AstroIntegrar con ExpressIntegrar con HonoIntegrar con Bun

Aprender

Recursos

Referencia del SDKVersionado de APIManejo de erroresTestingCLI

Plugins

Better Auth
DocumentaciónRecursosConstruir con AIAPI ReferenceWebhooks

Integrar con Bun

Agrega cobros y pagos a tu aplicación de Bun.

Usa este prompt prearmado para integrar Commet más rápido con asistentes de IA.

Instalar

bun add @commet/node

Configurar

.env
COMMET_API_KEY=ck_sandbox_xxx
src/commet.ts
import { Commet } from '@commet/node'

export const commet = new Commet({
  apiKey: Bun.env.COMMET_API_KEY!,
})

Suscribir

src/index.ts
import { commet } from './commet'

Bun.serve({
  port: 3000,
  async fetch(req) {
    const url = new URL(req.url)

    if (url.pathname === '/subscribe' && req.method === 'POST') {
      const { customerId, email } = await req.json()

      await commet.customers.create({ email, id: customerId })

      const subscription = await commet.subscriptions.create({
        customerId,
        planCode: 'pro',
      })

      return Response.json({ checkoutUrl: subscription.data.checkoutUrl })
    }

    return new Response('Not Found', { status: 404 })
  },
})

Verificar Acceso

Agrega estas rutas al handler fetch.

src/index.ts
if (url.pathname.startsWith('/subscription/') && req.method === 'GET') {
  const customerId = url.pathname.split('/')[2]

  const { data } = await commet.subscriptions.get(customerId)

  return Response.json({ status: data.status })
}

if (url.pathname.startsWith('/features/') && req.method === 'GET') {
  const [, , feature, customerId] = url.pathname.split('/')

  const { data } = await commet.features.check({ code: feature, customerId })

  return Response.json({ allowed: data.allowed })
}

Trackear Uso

src/index.ts
if (url.pathname === '/usage' && req.method === 'POST') {
  const { customerId } = await req.json()

  await commet.usage.track({
    customerId,
    feature: 'api_calls',
    value: 1,
  })

  return Response.json({ tracked: true })
}

El uso se agrega y se cobra al final del período.

Portal del Cliente

src/index.ts
if (url.pathname === '/portal' && req.method === 'GET') {
  const customerId = url.searchParams.get('customerId')!

  const { data } = await commet.portal.getUrl({ customerId })

  return Response.redirect(data.portalUrl)
}

Relacionado

  • Suscripciones
  • Trackear Uso
  • Portal del Cliente
  • Referencia del SDK

¿Cómo está esta guía?

Integrar con Hono

Agrega cobros y pagos a tu aplicación de Hono.

Integrar con Python

Instala y configura el SDK de Commet para Python.

En esta página

Instalar
Configurar
Suscribir
Verificar Acceso
Trackear Uso
Portal del Cliente
Relacionado