Adicione clientes pagantes ao seu servidor do Discord com uma função opcional e remova-os automaticamente quando o acesso terminar.
O entitlement do Discord adiciona um cliente pagante ao seu servidor do Discord e pode atribuir uma função a ele. O cliente conecta a conta do Discord depois que a assinatura é ativada ou o pagamento único é aprovado. Quando o grant é revogado, por exemplo, após um cancelamento ou reembolso, Dodo Payments remove a função e remove o cliente do servidor.
O cliente conecta a conta do Discord pelo Customer Portal. O e-mail de confirmação do pagamento marca o entitlement como Action Required e inclui um link para o portal.
Depois que o cliente autoriza, o bot do Dodo Payments o adiciona ao seu servidor ou encontra a associação existente e atribui a função que você configurou.
Se você não escolher uma função, o cliente recebe apenas a associação ao servidor.
Use para comunidades pagas, benefícios para apoiadores e canais de acesso por níveis.
No dashboard do Dodo Payments, acesse Entitlements e clique em + para iniciar um novo entitlement.
2
Pick Discord
Escolha Discord Access como integração. Se o Discord ainda não estiver conectado à sua empresa, clique em Connect Discord.
Connect Discord prompt before the OAuth handoff.
O Discord será aberto em uma nova aba. Entre, escolha o servidor que deseja proteger e aprove as permissões do bot nesse servidor: Manage Roles, Kick Members e Create Invite.
Discord OAuth: pick the server to add the bot to.
Discord OAuth: confirm the bot's permissions on the server.
Quando o Discord redirecionar de volta, uma página de confirmação mostrará que o servidor está conectado.
Server connected. Return to the Dodo Payments dashboard to continue.
3
Pick a Server and Role
De volta ao dashboard, selecione o Server que você conectou. Para atribuir uma função na entrega, selecione-a em Role. Para conceder apenas a associação ao servidor, mantenha Role definido como No specific role. Insira um Name para o entitlement e clique em Create Entitlement.
Dodo Payments cria uma concessão com o status Pending. Dodo Payments tenta criar imediatamente uma URL de autorização do Discord e a armazena em oauth_url. Se isso falhar, oauth_url permanece como null até que o cliente inicie o fluxo de aceitação.
O e-mail de confirmação do pagamento lista o benefício como Ação necessária e inclui um link para o Customer Portal. No portal, o cliente clica em Conectar no benefício.
O cliente autoriza Dodo Payments no Discord. O bot o adiciona ao servidor e atribui a função configurada, e a concessão muda para Delivered.
Quando a concessão é revogada (a assinatura é cancelada, pausada, colocada em espera ou expira, o pagamento único é reembolsado ou você revoga a concessão), o bot remove a função e remove o cliente do servidor. A concessão muda para Revoked.
Um link de autorização expira 30 minutos após ser gerado. Se o cliente retornar ao Customer Portal depois disso, Dodo Payments gerará um novo link. Se um cliente sair do seu servidor por conta própria, Dodo Payments revogará o grant com revocation_reason: platform_external.
Coloque a função do bot do Dodo Payments acima da função que você concede. O Discord não permite que um bot atribua uma função no mesmo nível ou acima da sua própria função mais alta. Funções gerenciadas, como funções de bots e integrações, não podem ser atribuídas.
// 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 é acionado com status: "Pending". oauth_url pode já conter a URL de autorização. Se for null, ele será preenchido assim que o cliente iniciar o fluxo de aceitação pelo Customer Portal.
entitlement_grant.delivered é acionado assim que o cliente entra no servidor e a função é atribuída.
entitlement_grant.revoked é acionado quando a função é removida e o cliente é removido do servidor.
O grant permanece Pending até que o cliente conclua a autorização do Discord. Abra o entitlement no dashboard e verifique o grant do cliente. Se ele ainda estiver Pending, peça ao cliente para abrir o Customer Portal e clicar em Connect no entitlement do Discord.
Grant moves to failed with permission errors
Verifique se o bot da Dodo Payments ainda está no servidor, se tem a permissão Gerenciar funções e se está acima da função que será atribuída. Se o bot for removido do servidor, Dodo Payments revogará as concessões pendentes e entregues do servidor. Salvar novamente o benefício verifica apenas as configurações dele, não as permissões do bot. Depois de corrigir as permissões, peça ao cliente para abrir o Customer Portal e clicar em Conectar no benefício do Discord para tentar conceder novamente.
Customer cancelled but still has the role
A revogação remove a função e o cliente do servidor. Se o grant mostrar Revoked, mas o cliente ainda estiver no servidor, confirme se o bot ainda tem as permissões Manage Roles e Kick Members e se está acima da função. Se o aplicativo do Discord do cliente ainda mostrar a função, peça que ele atualize o aplicativo. O estado no servidor é a fonte de verdade.