Recursos
- Validação da chave de licença: valida chaves de licença com a API do Dodo Payments.
- Ativação da chave de licença: ativa chaves de licença com um nome de instância para chaves que têm um limite de ativações.
- Suporte a ambientes: configurável para o modo de teste e o modo live.
- Suporte a TypeScript: implementação totalmente tipada com tratamento de erros.
Começando
Antes de começar, você precisa do aplicativo para desktop do Figma e de um produto do Dodo Payments que emita chaves de licença.1
Create Base Plugin
Crie seu próprio projeto de plugin do Figma com o guia de início rápido para plugins do Figma. O Figma gera um scaffold com um arquivo
manifest.json.2
Clone the Example Implementation
Clone o repositório dodopayments-figma:No
manifest.json clonado, substitua name e id pelos valores do manifest.json do seu plugin gerado. Este exemplo é o ponto de partida para a integração.3
Install Dependencies
Na raiz do projeto, execute:
4
Configure Environment
Defina
API_MODE em src/ui/api.ts:API_MODE seleciona o host da API: https://test.dodopayments.com para test_mode ou https://live.dodopayments.com para live_mode.5
Customize Components
Personalize os componentes do plugin em
src/ui/components/ para atender às suas necessidades:- Atualize
Authenticated.tsxpara expor funcionalidades a usuários com chaves de licença válidas. - Personalize
LicenseKeyInput.tsxpara corresponder ao seu design.
Authenticated.tsx é onde você adiciona os recursos premium do seu plugin. O plugin os exibe somente depois que uma chave de licença é validada ou ativada.Configuração
1
Configure Network Access
O exemplo envia todas as solicitações de chave de licença por um proxy CORS em Em
https://dodo-payments-proxy.aagarwal9782.workers.dev, e seu manifest.json permite acesso à rede somente a esse proxy. O proxy não está disponível, portanto, chame a API do Dodo Payments diretamente. A API aceita solicitações cross-origin de qualquer origem, incluindo a origem null da interface do plugin.No seu manifest.json, substitua o domínio do proxy pelos hosts da API do Dodo Payments:src/ui/api.ts, substitua fetch(proxyReq) por fetch(req) em validateLicenseKey e activateLicenseKey, para que cada solicitação seja enviada diretamente à API.Isso permite que o plugin valide e ative chaves de licença com a API do Dodo Payments.2
Configure API Mode
Em
src/ui/api.ts, configure o modo da API:Desenvolvimento
1
Import Plugin
Importe o plugin no aplicativo para desktop do Figma:
- Abra um arquivo de design.
- Abra o menu do Figma e selecione Plugins.
- Em Desenvolvimento, selecione Import new plugin from manifest… e, em seguida, selecione o arquivo
manifest.jsonna raiz do projeto.
dist/, portanto, inicie o servidor de desenvolvimento ou execute npm run build antes de executar o plugin.Você precisa do aplicativo para desktop do Figma para desenvolver e testar plugins localmente, pois o Figma lê o código do plugin a partir de arquivos locais.
2
Start Development Server
Seu plugin é recompilado automaticamente quando você altera o código-fonte.
Comandos de build
O projeto inclui estes scripts npm:Integração de chaves de licença
A implementação de exemplo verifica uma chave de licença antes de desbloquear o plugin. Você pode personalizar cada etapa:- Entrada do usuário: os usuários inserem a chave de licença na interface do plugin.
- Validação: por padrão, o plugin valida a chave com Validate License (
POST /licenses/validate). - Ativação: se suas chaves de licença tiverem um limite de ativações, defina
needsActivationcomotrueemsrc/ui/components/Unauthenticated.tsx. O plugin então ativa a chave com Activate License (POST /licenses/activate) em vez de validá-la e nomeia a instância comoFigma Plugin. - Controle de acesso: para uma chave válida, o plugin salva a chave com
figma.clientStoragee exibeAuthenticated.tsx. Na próxima vez que o plugin for aberto, ele validará a chave salva novamente.
Publicação
Quando seu plugin estiver pronto:- Faça o build para produção:
npm run build - Teste completamente nos modos de teste e live.
- Siga as diretrizes de publicação de plugins do Figma.
- Envie o plugin para análise pela Comunidade do Figma.