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 Express

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

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

Instalar

pnpm add @commet/node express
npm install @commet/node express
yarn add @commet/node express

Configurar

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

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

Suscribir

src/routes/billing.ts
import { Router } from 'express'
import { commet } from '../commet'

const router = Router()

router.post('/subscribe', async (req, res) => {
  const { customerId, email } = req.body

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

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

  res.json({ checkoutUrl: subscription.data.checkoutUrl })
})

export default router

Verificar Acceso

src/routes/billing.ts
router.get('/subscription/:customerId', async (req, res) => {
  const { data } = await commet.subscriptions.get(req.params.customerId)

  res.json({ status: data.status })
})

router.get('/features/:feature/:customerId', async (req, res) => {
  const { data } = await commet.features.check({
    code: req.params.feature,
    customerId: req.params.customerId,
  })

  res.json({ allowed: data.allowed })
})

Trackear Uso

src/routes/billing.ts
router.post('/usage', async (req, res) => {
  await commet.usage.track({
    customerId: req.body.customerId,
    feature: 'api_calls',
    value: 1,
  })

  res.json({ tracked: true })
})

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

Portal del Cliente

src/routes/billing.ts
router.get('/portal', async (req, res) => {
  const { data } = await commet.portal.getUrl({
    customerId: req.user.customerId,
  })

  res.redirect(data.portalUrl)
})

Iniciar el Servidor

src/index.ts
import express from 'express'
import billingRoutes from './routes/billing'

const app = express()

app.use(express.json())
app.use('/billing', billingRoutes)

app.listen(3000)

Relacionado

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

¿Cómo está esta guía?

Integrar con Astro

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

Integrar con Hono

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

En esta página

Instalar
Configurar
Suscribir
Verificar Acceso
Trackear Uso
Portal del Cliente
Iniciar el Servidor
Relacionado