Billing Stripe usage-based para monetizar API — guia prático
Quer cobrar por request de API? Usage-based billing no Stripe cobre medição e fatura — o esqueleto para monetizar endpoint de receita.
Resposta direta
Monetizar API por uso pede medição confiável + produto Stripe alinhado; o tutorial mostra o caminho feliz do usage-based. Meu file de tarefas como contatos e isso só contém alguns métodos de ajudante que eu já montei e agora eu vou só fazer uma prompção e pedir que ele chame a tarefa de requerir a geração 10 vezes o script que.
Cenário: API cobrada por pedido
Vamos imaginar que construímos um API que queremos monetizar e carregá-lo baseado no número de pedidos de API que eles fizeram. Felizmente, com o billing baseado em Stripe, podemos implementar isso bastante facilmente. Por que não dar uma olhada e ver como podemos fazer isso?
Aqui, estamos olhando para o API que queremos monetizar. É um API de receitas que permite aos usuários manejar suas diferentes receitas, ou até mesmo obter um random quando precisam de inspiração. O que queremos fazer é carregá-los pelo número de pedidos que eles fazem para esse API.
Por que usage-based encaixa
Vamos para o nosso dashboard Stripe e ver como podemos fazer isso. No catálogo de produtos, eu vou começar a montar um produto que representará a tira de preços para como vamos pagar por essas requerências de API. O preço baseiro anual, que é de 40 dólares por mês, e o preço de overages de API que começam a ser de 0 dólares por mês.
Agora, este primeiro preço, se olharmos para ele, é apenas o preço anual que vamos pagar para os usuários para terem acesso à API. O primeiro tais representa uma quantidade de 1 a 40, e o segundo tais captura tudo o resto. Então, o que isso significa é que para os primeiros 40 chamadas API, nós não vamos ser carregados nenhum extra para o acount.
Na prática
Monetizar API por uso pede medição confiável + produto Stripe alinhado; o tutorial mostra o caminho feliz do usage-based.
Peças do Stripe que entram no fluxo
Mas, depois de passarmos isso, nós vamos ser carregados 25 centavos por chamada adicional que fazemos para o acount. Agora, para capturar o uso, nós também tivemos que criar o que é chamado de um meter. E note que este preço é associado com o meter de pedido de API standard.
E na parte direita, você pode ver alguns detalhes que você precisa para começar a usar este meter. Algumas informações importantes para se prestar atenção nesta seção são o nome do evento, o método de agregação e a chave de pagamento. Desde que o método de agregação seja seto para alguns, o que ele fará é adicionar todos os relatos de uso que nós submitimos para o Stripe API.
O que medir sem mentir no meter
Agora, vamos para a nossa IDE e gerar algumas requestões para ver como isso parece. Para me ajudar a gerar algumas requestões, eu vou ter o GitHub Copilot me ajudar um pouco. Meu file de tarefas como contatos e isso só contém alguns métodos de ajudante que eu já montei e agora eu vou só fazer uma prompção e pedir que ele chame a tarefa de requerir a geração 10 vezes o script que ele gera parece bom para mim e eu vou seguir e agora o que ele está fazendo é apenas gerar requerimentos contra minha api se eu voltar para o dashboard você pode ver que meu meter está começando a coletar esses relatos de uso se descolamos um pouco podemos ver que o meter consegue identificar o cliente e também que estamos enviando relatos de uso em batches de 10.
No envio atual, podemos ver que James aumentou a 40 solicitações anualmente e adicionou 60 a mais, que é carregado a 0,25 por solicitação. Então quando o ciclo de pagamento próximo chegar, ele vai ser carregado a $55, que inclui seu preço base anual e os overages do mês anterior. Agora, aqui eu tenho o meu controle API que tem todos esses diferentes métodos.
Armadilhas de cobrança por request
Eu posso abrir a operação GetRandomRecipe e você pode ver que o que eu estou fazendo aqui é só querendo o database para um recorde random e retornando-o ao usuário. Bem, se nós voltarmos para o topo da nossa classe, você pode ver que eu estou usando o que se chama de filter de serviço. O que o filtro de serviços faz é permitir que nós runemos o código antes e depois de cada operação ser chamada.
Então, isso significa que antes ou depois que eu faça uma chamada para receber uma receita random, eu posso executar algum código. Agora, neste caso, eu só quero coletar o relatório de usagem depois que a operação é completada. E como nós fazemos isso é por plugar o nosso código depois de chamar o próximo delegado.
Sinais de que está funcionando
Em linhas 16-20, tudo o que nós estamos fazendo é que nós estamos recebendo o ID de cliente do usuário que está logado e usando um canal para ter o usagem agregado no fundo. O que acontece é que temos um trabalhador que recebe todos esses relatos de usagem. Se eu abrir esse método ExecuteAsync, você pode ver que estou lendo as mensagens do canal e estou apenas agregando-as na memória por agora.
Mas quando o número de usagens for maior que 10, então vou fazer uma chamada de batch para enviar todos esses relatos de usagens para Stripe. Agora, se olharmos para o report UsageBatch, o que estamos fazendo é coletar todos os relatos de usagens e grupos-os por usuário. Então, para cada usuário, vou criar um evento de meter e vou especificar o nome, que neste caso é o nome do evento que vimos nos detalhes de meter e no payload, nós distribuímos a id do cliente, como o número de usagens então, praticamente o que este trabalhador de fundo está fazendo é dizer cada vez que eu receber 10 relatos de usagens, vou enviar essa informação para Stripe agora, há mais uma coisa que eu quero mostrar para vocês dentro do dashboard se nós voltarmos para a nossa seção de clientes, e eu vou clicar em James e no topo da tela, você vê aquela seção que diz tempo de simulação e isso é porque o cliente de James Moriarty é ligado a um clock test, então uma das coisas que podemos fazer é usar um clock test e avançar o tempo, então eu vou dizer que eu quero avançar isso em frente por um mês E o que isso fez foi simular o passeio de tempo para o acount de James.
O que evitar na primeira semana
Agora, se eu descrever um pouco, eu deveria poder ver os envios de James. E, enquanto passamos pelo tempo, nós veremos que os statuses desses envios vão mudar. E isso nos mostrou que usar clockes de teste proporciona uma maneira conveniente de simular o passeio do tempo quando queremos validar os cenários de pagamento baseado em uso.
Espero que depois de assistir este vídeo, você se sinta um pouco mais confortável em implementar pagamento baseado em uso em vez de suas aplicações web baseadas em core do ASP.NET e também usando clockes de teste para validar sua lógica de inscrição. Se você está interessado em obter o código para esta aplicação, bem, vou colocar isso no link abaixo. Além disso, se você quiser aprender mais sobre pagamento baseado em usagens, sobre Stripe e algumas de nossas diferentes APIs, certifique-se de conferir nossa documentação e alguns dos outros vídeos que estão disponíveis aqui no canal do YouTube dos desenvolvedores de Stripe.
Na prática
Próximo passo para «stripe-billing-usage-based-api»: rode um experimento de 7 dias com uma métrica ligada a stripe billing usage based api antes de escalar o padrão.