• Precios
  • Blog
Iniciar sesiónAgendá una demo
Introducción

Inicio rápido

Integrar con PHPIntegrar con LaravelIntegrar con Symfony

Aprender

Recursos

Referencia del SDKVersionado de APIManejo de erroresTestingCLI

Plugins

Better Auth
DocumentaciónRecursosConstruir con AIAPI ReferenceWebhooks

Integrar con PHP

Instala y configura el SDK de Commet para PHP.

Instala la Commet Skill para que tu agente integre el SDK actual y valide su trabajo contra el contrato vivo de la API.

npx skills add commet-labs/skills --skill commet

Instalar

composer require commet/commet-php

Configurar

.env
COMMET_API_KEY=ck_sandbox_xxx
commet.php
<?php

require_once __DIR__ . '/vendor/autoload.php';

use Commet\Commet;

$commet = new Commet(
    apiKey: $_ENV['COMMET_API_KEY'],
);

Crear cliente y suscribir

customers->create es idempotente — si ya existe un cliente con el mismo id, devuelve el registro existente.

$commet->customers->create(
    email: 'user@example.com',
    id: 'user_123',
);

$subscription = $commet->subscriptions->create(
    customerId: 'user_123',
    planCode: 'pro',
);

$checkoutUrl = $subscription->checkoutUrl;

El cliente es redirigido al checkout para completar el pago.

Verificar acceso

$sub = $commet->subscriptions->getActive('user_123');
$status = $sub?->status->value;

$access = $commet->featureAccess->get(code: 'custom_branding', customerId: 'user_123');
$allowed = $access->allowed;

Trackear uso

$commet->usage->track(
    customerId: 'user_123',
    featureCode: 'api_calls',
    value: 1,
);

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

Webhooks

<?php

use Commet\Resources\WebhooksResource;

$webhooks = new WebhooksResource();

$payload = $webhooks->verifyAndParse(
    rawBody: file_get_contents('php://input'),
    signature: $_SERVER['HTTP_X_COMMET_SIGNATURE'] ?? '',
    secret: $_ENV['COMMET_WEBHOOK_SECRET'],
);

if ($payload === null) {
    http_response_code(401);
    echo json_encode(['error' => 'Invalid signature']);
    exit;
}

match ($payload['event']) {
    'subscription.activated' => handleActivated($payload),
    'subscription.canceled' => handleCanceled($payload),
    default => null,
};

echo json_encode(['ok' => true]);

Relacionado

  • Laravel
  • Symfony
  • Referencia del SDK

¿Cómo está esta guía?

Integrar con Encore

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

Integrar con Laravel

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

On this page

Instalar
Configurar
Crear cliente y suscribir
Verificar acceso
Trackear uso
Webhooks
Relacionado