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

Inicio rápido

Integrar con PythonIntegrar con FlaskIntegrar con FastAPIIntegrar con Django

Aprender

Recursos

Referencia del SDKVersionado de APIManejo de erroresTestingCLI

Plugins

Better Auth
DocumentaciónRecursosConstruir con AIAPI ReferenceWebhooks

Integrar con Django

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

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

pip install commet-sdk django
uv add commet-sdk django
poetry add commet-sdk django

Configurar

.env
COMMET_API_KEY=ck_sandbox_xxx
billing/commet_client.py
import os
from commet import Commet

commet = Commet(
    api_key=os.environ["COMMET_API_KEY"],
)

Suscribir

billing/views.py
import json
from django.http import JsonResponse
from django.views.decorators.http import require_POST
from .commet_client import commet


@require_POST
def subscribe(request):
    data = json.loads(request.body)

    commet.customers.create(
        email=data["email"],
        id=data["customer_id"],
    )

    subscription = commet.subscriptions.create(
        customer_id=data["customer_id"],
        plan_code="pro",
    )

    return JsonResponse({"checkout_url": subscription.checkout_url})

Verificar acceso

billing/views.py
def get_subscription(request, customer_id):
    sub = commet.subscriptions.get_active(customer_id=customer_id)
    if sub is None:
        return JsonResponse({"error": "no_active_subscription"}, status=404)
    return JsonResponse({"status": sub.status})


def check_feature(request, feature, customer_id):
    result = commet.feature_access.get(code=feature, customer_id=customer_id)
    return JsonResponse({"allowed": result.allowed})

Trackear uso

billing/views.py
@require_POST
def track_usage(request):
    data = json.loads(request.body)

    commet.usage.track(
        customer_id=data["customer_id"],
        feature_code="api_calls",
        value=1,
    )

    return JsonResponse({"tracked": True})

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

Portal del Cliente

billing/views.py
from django.shortcuts import redirect


def portal(request):
    result = commet.portal.get_url(customer_id="user_123")
    return redirect(result.portal_url)

Webhooks

billing/views.py
import os

from django.views.decorators.csrf import csrf_exempt
from commet import Webhooks

webhooks = Webhooks()


@csrf_exempt
@require_POST
def handle_webhook(request):
    payload = webhooks.verify_and_parse(
        raw_body=request.body.decode(),
        signature=request.headers.get("x-commet-signature"),
        secret=os.environ["COMMET_WEBHOOK_SECRET"],
    )

    if payload is None:
        return JsonResponse({"error": "Invalid signature"}, status=401)

    if payload["event"] == "subscription.activated":
        # manejar activación
        pass

    return JsonResponse({"ok": True})

URLs

billing/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path("subscribe", views.subscribe),
    path("subscription/<str:customer_id>", views.get_subscription),
    path("features/<str:feature>/<str:customer_id>", views.check_feature),
    path("usage", views.track_usage),
    path("portal", views.portal),
    path("webhooks/commet", views.handle_webhook),
]
project/urls.py
from django.urls import path, include

urlpatterns = [
    path("billing/", include("billing.urls")),
]

Relacionado

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

¿Cómo está esta guía?

Integrar con FastAPI

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

Integrar con Java

Instala y configura el SDK de Commet para Java.

On this page

Instalar
Configurar
Suscribir
Verificar acceso
Trackear uso
Portal del Cliente
Webhooks
URLs
Relacionado