Instala y configura el SDK de Commet para Java.
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<dependency>
<groupId>co.commet</groupId>
<artifactId>commet-java</artifactId>
<version>8.0.0</version>
</dependency>implementation("co.commet:commet-java:9.0.0")COMMET_API_KEY=ck_sandbox_xxximport co.commet.Commet;
public class CommetClient {
public static final Commet commet = Commet.builder()
.apiKey(System.getenv("COMMET_API_KEY"))
.build();
}El cliente no tiene opción de environment: sandbox o live lo decide la organización a la que pertenece la API key.
customers().create es idempotente — si ya existe un cliente con el mismo id, devuelve el registro existente.
import co.commet.params.CreateCustomerParams;
import co.commet.params.CreateSubscriptionParams;
commet.customers().create(
CreateCustomerParams.builder("user@example.com")
.id("user_123")
.build()
);
var subscription = commet.subscriptions().create(
CreateSubscriptionParams.builder("user_123")
.planCode("pro")
.build()
);
String checkoutUrl = subscription.checkoutUrl();El cliente es redirigido al checkout para completar el pago.
import co.commet.models.FeatureAccess;
import co.commet.models.Subscription;
import co.commet.models.SubscriptionStatus;
import co.commet.params.GetActiveSubscriptionParams;
import co.commet.params.GetFeatureAccessParams;
Subscription sub = commet.subscriptions().getActive(
GetActiveSubscriptionParams.builder("user_123").build()
);
SubscriptionStatus status = sub != null ? sub.status() : null;
FeatureAccess access = commet.featureAccess()
.get("custom_branding", GetFeatureAccessParams.builder("user_123").build());
boolean allowed = access.allowed();import co.commet.params.TrackUsageParams;
commet.usage().track(
TrackUsageParams.builder("api_calls", "user_123")
.value(1.0)
.build()
);El uso se agrega y se cobra al final del período.
import co.commet.resources.Webhooks;
import java.util.Map;
Webhooks webhooks = new Webhooks();
Map<String, Object> payload = webhooks.verifyAndParse(
rawBody, signature, webhookSecret
);
if (payload == null) {
// devolver 401
}
if ("subscription.activated".equals(payload.get("event"))) {
// manejar activación
}¿Cómo está esta guía?