Ajoutez des clients payants à votre serveur Discord avec un rôle facultatif, puis supprimez-les automatiquement lorsque leur accès prend fin.
Le droit Discord ajoute un client payant à votre serveur Discord et peut lui attribuer un rôle. Le client connecte son compte Discord après l’activation de son abonnement ou la réussite de son paiement ponctuel. Lorsque l’attribution est révoquée, par exemple en cas d’annulation ou de remboursement, Dodo Payments supprime le rôle et retire le client du serveur.
Le client connecte son compte Discord depuis le Customer Portal. L’e-mail de confirmation du paiement indique que le droit Action Required et contient un lien vers le portail.
Après son autorisation, le bot Dodo Payments l’ajoute à votre serveur ou détecte son appartenance existante, puis lui attribue le rôle que vous avez configuré.
Si vous ne sélectionnez aucun rôle, le client devient uniquement membre du serveur.
Utilisez-le pour les communautés payantes, les avantages réservés aux contributeurs et les salons à accès par niveau.
Dans le tableau de bord Dodo Payments, accédez à Entitlements et cliquez sur + pour commencer un nouveau droit.
2
Pick Discord
Choisissez Discord Access comme intégration. Si Discord n’est pas encore connecté pour votre entreprise, cliquez sur Connect Discord.
Connect Discord prompt before the OAuth handoff.
Discord s’ouvre dans un nouvel onglet. Connectez-vous, sélectionnez le serveur dont vous souhaitez restreindre l’accès, puis approuvez les permissions du bot sur ce serveur : Manage Roles, Kick Members et Create Invite.
Discord OAuth: pick the server to add the bot to.
Discord OAuth: confirm the bot's permissions on the server.
Lorsque Discord vous redirige vers le tableau de bord, une page de confirmation indique que le serveur est connecté.
Server connected. Return to the Dodo Payments dashboard to continue.
3
Pick a Server and Role
De retour dans le tableau de bord, sélectionnez le Server que vous avez connecté. Pour attribuer un rôle lors de la fourniture, sélectionnez-le sous Role. Pour accorder uniquement l’appartenance au serveur, laissez Role défini sur No specific role. Saisissez un Name pour le droit, puis cliquez sur Create Entitlement.
Dodo Payments crée une attribution avec le statut Pending. Dodo Payments essaie immédiatement de créer une URL d’autorisation Discord et la stocke dans oauth_url. En cas d’échec, oauth_url reste null jusqu’à ce que le client démarre le flux d’acceptation.
L’e-mail de confirmation du paiement répertorie l’avantage comme Action requise et contient un lien vers le Customer Portal. Dans le portail, le client clique sur Connecter pour l’avantage.
Le client autorise Dodo Payments sur Discord. Le bot l’ajoute au serveur et lui attribue le rôle configuré, et l’attribution passe à Delivered.
Lorsque l’attribution est révoquée (l’abonnement est annulé, mis en pause, suspendu ou arrive à expiration, le paiement unique est remboursé, ou vous révoquez l’attribution), le bot supprime le rôle et retire le client du serveur. L’attribution passe à Revoked.
Un lien d’autorisation expire 30 minutes après sa génération. Si le client revient dans le Customer Portal après ce délai, Dodo Payments génère un nouveau lien. Si un client quitte votre serveur de son propre chef, Dodo Payments révoque son attribution avec revocation_reason: platform_external.
Placez le rôle du bot Dodo Payments au-dessus du rôle que vous attribuez. Discord n’autorise pas un bot à attribuer un rôle situé au même niveau ou au-dessus de son propre rôle le plus élevé. Les rôles gérés, tels que les rôles de bot et d’intégration, ne peuvent pas être attribués.
// 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 déclenche avec status: "Pending". oauth_url peut déjà contenir l’URL d’autorisation. S’il contient null, il est renseigné lorsque le client démarre le flux d’acceptation depuis le Customer Portal.
entitlement_grant.delivered se déclenche une fois que le client a rejoint le serveur et que le rôle lui a été attribué.
entitlement_grant.revoked se déclenche lorsque le rôle est supprimé et que le client est retiré du serveur.
L’attribution reste à Pending jusqu’à ce que le client termine l’autorisation Discord. Ouvrez le droit dans le tableau de bord et vérifiez l’attribution du client. Si elle est toujours à Pending, demandez au client d’ouvrir le Customer Portal et de cliquer sur Connect pour le droit Discord.
Grant moves to failed with permission errors
Vérifiez que le bot Dodo Payments est toujours présent sur le serveur, qu’il dispose de l’autorisation Gérer les rôles et qu’il se trouve au-dessus du rôle à attribuer. Si le bot est retiré du serveur, Dodo Payments révoque les attributions en attente et délivrées du serveur. Le fait d’enregistrer à nouveau l’avantage vérifie uniquement ses paramètres, et non les autorisations du bot. Après avoir corrigé les autorisations, demandez au client d’ouvrir le Customer Portal et de cliquer sur Connecter pour l’avantage Discord afin de réessayer l’attribution.
Customer cancelled but still has the role
La révocation supprime le rôle et retire le client du serveur. Si l’attribution affiche Revoked alors que le client se trouve toujours sur le serveur, vérifiez que le bot dispose toujours des permissions Manage Roles et Kick Members et qu’il se trouve au-dessus du rôle. Si l’application Discord du client affiche toujours le rôle, demandez-lui de l’actualiser. L’état côté serveur fait foi.