Añade clientes de pago a tu servidor de Discord con un rol opcional y elimínalos automáticamente cuando finalice su acceso.
La entitlement de Discord añade un cliente de pago a tu servidor de Discord y puede asignarle un rol. El cliente conecta su cuenta de Discord después de que su suscripción se active o de que su pago único se complete correctamente. Cuando se revoca la concesión, por ejemplo, tras una cancelación o un reembolso, Dodo Payments elimina el rol y retira al cliente del servidor.
El cliente conecta su cuenta de Discord desde el Customer Portal. El correo de confirmación del pago marca la entitlement como Action Required y enlaza al portal.
Después de autorizar, el bot de Dodo Payments lo añade a tu servidor o encuentra su membresía existente y le asigna el rol que configuraste.
Si no eliges un rol, el cliente solo obtiene la membresía del servidor.
Úsala para comunidades de pago, beneficios para colaboradores y canales de acceso por niveles.
En el dashboard de Dodo Payments, ve a Entitlements y haz clic en + para iniciar una nueva entitlement.
2
Pick Discord
Elige Discord Access como integración. Si Discord todavía no está conectado para tu empresa, haz clic en Connect Discord.
Connect Discord prompt before the OAuth handoff.
Discord se abre en una pestaña nueva. Inicia sesión, elige el servidor que quieres proteger y aprueba los permisos del bot en ese servidor: Manage Roles, Kick Members y Create Invite.
Discord OAuth: pick the server to add the bot to.
Discord OAuth: confirm the bot's permissions on the server.
Cuando Discord redirige de vuelta, una página de confirmación muestra que el servidor está conectado.
Server connected. Return to the Dodo Payments dashboard to continue.
3
Pick a Server and Role
De vuelta en el dashboard, selecciona el Server que conectaste. Para asignar un rol al entregar, selecciónalo en Role. Para conceder únicamente la membresía del servidor, deja Role establecido en No specific role. Introduce un Name para la entitlement y haz clic en Create Entitlement.
Dodo Payments crea un grant en estado Pending. Dodo Payments intenta crear de inmediato una URL de autorización de Discord y la almacena en oauth_url. Si falla, oauth_url permanece en null hasta que el cliente inicia el flujo de aceptación.
El correo electrónico de confirmación del pago muestra el entitlement como Acción requerida y enlaza al Customer Portal. En el portal, el cliente hace clic en Conectar en el entitlement.
El cliente autoriza a Dodo Payments en Discord. El bot lo añade al servidor y le asigna el rol configurado, y el grant pasa a Delivered.
Cuando se revoca el grant (se cancela, pausa, suspende o vence la suscripción, se reembolsa el pago único o revocas el grant), el bot elimina el rol y al cliente del servidor. El grant pasa a Revoked.
Un enlace de autorización caduca 30 minutos después de generarse. Si el cliente vuelve al Customer Portal después de ese tiempo, Dodo Payments genera un enlace nuevo. Si un cliente abandona tu servidor por su cuenta, Dodo Payments revoca su concesión con revocation_reason: platform_external.
Coloca el rol del bot de Dodo Payments above el rol que concedes. Discord no permite que un bot asigne un rol que esté al mismo nivel o por encima de su propio rol más alto. Los roles administrados, como los roles de bots e integraciones, no se pueden asignar.
// client is a *dodopayments.Client, for example from// dodopayments.NewClient(option.WithEnvironmentTestMode()); ctx is a context.Context.client.Entitlements.New(ctx, dodopayments.EntitlementNewParams{ Name: dodopayments.F("Patrons Discord Role"), IntegrationType: dodopayments.F(dodopayments.EntitlementIntegrationTypeDiscord), IntegrationConfig: dodopayments.F[dodopayments.IntegrationConfigUnionParam]( dodopayments.IntegrationConfigDiscordConfigParam{ GuildID: dodopayments.F("123456789012345678"), RoleID: dodopayments.F("987654321098765432"), }, ),})
entitlement_grant.created se activa con status: "Pending". oauth_url puede contener ya la URL de autorización. Si es null, se completa cuando el cliente inicia el flujo de aceptación desde el Customer Portal.
entitlement_grant.delivered se activa cuando el cliente se une al servidor y se asigna el rol.
entitlement_grant.revoked se activa cuando se elimina el rol y el cliente se elimina del servidor.
La concesión permanece en Pending hasta que el cliente completa la autorización de Discord. Abre la entitlement en el dashboard y comprueba la concesión del cliente. Si todavía está en Pending, pídele al cliente que abra el Customer Portal y haga clic en Connect en la entitlement de Discord.
Grant moves to failed with permission errors
Asegúrate de que el bot de Dodo Payments siga en el servidor, tenga el permiso Gestionar roles y esté por encima del rol que se asignará. Si se elimina el bot del servidor, Dodo Payments revoca los grants pendientes y entregados del servidor. Volver a guardar el entitlement comprueba únicamente su configuración, no los permisos del bot. Después de corregir los permisos, pide al cliente que abra el Customer Portal y haga clic en Conectar en el entitlement de Discord para volver a intentar conceder el grant.
Customer cancelled but still has the role
La revocación elimina el rol y retira al cliente del servidor. Si la concesión muestra Revoked pero el cliente sigue en el servidor, confirma que el bot aún tenga los permisos Manage Roles y Kick Members y esté por encima del rol. Si la aplicación de Discord del cliente todavía muestra el rol, pídele que la actualice. El estado del servidor es la fuente de verdad.