Mario Souto - DevSoutinho
banner
devsoutinho.bsky.social
Mario Souto - DevSoutinho
@devsoutinho.bsky.social
Eu to meio sumido de redes sociais esses tempos pq eu não paro um minuto hahshshs inclusive agora to indo pra pelotas pra um DevFest PORÉM! vou deixar o spoiler da pedrada que vai ser o próximo vídeo que eu vou lançar no canal youtube.com/@DevSoutinho e rumo a meta de #DevSoutinho100k
November 8, 2024 at 8:28 AM
LIVE SURPRESA em instantes com o @wmsbill.bsky.social

youtube.com/live/lOYSFfM...
September 24, 2024 at 10:32 PM
Fiz um ajuste pra BRL aqui adshuadsuh bugs que só rolam em prod
September 18, 2024 at 9:26 PM
teve o preço reajustado sdhuadsahu
September 18, 2024 at 9:13 PM
E a meta MAIOR foi cumprida, alguém pagou um café hehe
September 18, 2024 at 8:54 PM
E depois de 6 horas, tenho a v1 do coffee.soutinho.dev no ar 🎉🎉🎉

Todo o processo ta documentado na thread:
- Foi legal ver como mesmo com algo pequeno, eu pendi pra overengineering ali em algum momento
- Ter pausas e ir questionando as prioridades foi bem importante
- ...
September 18, 2024 at 8:44 PM
E agora ta prontinho! coffee.soutinho.dev 🎉🎉🎉

- No final não usei um db externo
- To rezando pra política de cache da vercel continuar show hashuashu

E espero que vc tenha curtido essa ideia de ir compartilhando os perrengues aqui em thread ☕

Será que eu ganho algum cafézin?
September 18, 2024 at 8:43 PM
Fiz aqui agora, tosqueira total só pra gerenciar as variaveis mesmo:
September 18, 2024 at 7:56 PM
Como eu sai codando a lá caralha, agora eu vou ter que lidar com gerenciar se eu to em STAGING ou PROD.

Mas até ai beleza, como eu to com tempo, vou tentar ter um controle que:

- Eu consiga habilitar/desabilitar fácil se em dev eu to usando prod ou staging.
- Em prod ele só ignora isso e usa prod
September 18, 2024 at 7:27 PM
Pro deploy eu vou de vercel, pq eu já pago o plano pro lá de 20$ e pra testar botando no ar funciona bem. Ainda ganho CI/CD de brinde
September 18, 2024 at 7:20 PM
Esse código é tosco, mas é intencional!

Meu objetivo é até o final do dia é:

"Ter um usuário salvo na minha base que consiga saber que ele me pagou um café"

Tudo bem que ele exista SÓ na stripe, eu consigo migrar depois, ter algo rodando é mais valioso do que ter tudo 100% perfeito
September 18, 2024 at 7:15 PM
Agora foi o primeiro refactor que eu fiz no código de fato, só pra garantir que tudo ficar server side e criar uma fonte que pega os customers.

Aqui é legal pq eu to usando a própria stripe por debaixo dos panos, enquanto ainda não pluguei um DB
September 18, 2024 at 7:13 PM
Agora eu usei o poder dos 🍓🍓🍓 pra pegar como eu faço pra saber todos os customers que compraram X produto.

Como a API é paginada, e eu quero botar no ar o mais rápido possível, vou adicionar uma limitação no projeto que eu só vou exibir as últimas 100 pessoas que compraram
September 18, 2024 at 6:52 PM
Por hora eu to me importando pouco com isso, vou dar foco agora em:

- Criar a entidade do customer que fez o donate
- Garantir que n to cadastrando a mesma pessoa 2x

Agora eu quero ter um jeito de listar todos os meus "customers" pq ai pelo menos a v1 com o mural eu consigo já ter rodando show
September 18, 2024 at 6:43 PM
Agora acho que foi!

Eu deveria ter pegado esse **whsec_** token e usado na hora de validar se o evento é um evento válido pra minha aplicação:

const event: Stripe.Event = stripe.webhooks.constructEvent(rawBody, stripeSignature, WH_SIGNING_SECRET);

Agora falta aprender os eventos
September 18, 2024 at 6:40 PM
Agora eu empaquei, como diabos eu valido a assinatura do request? 🤔
September 18, 2024 at 6:00 PM
Seguindo a doc da própria stripe e usando a integração via API, já consegui simular um evento de pagamento com sucesso 🎉

Agora posso começar a criar a integração pra salvar a pessoa
September 18, 2024 at 5:35 PM
Mas só vou almoçar com pelo menos o endpoint do webhook respondendo dhuaduhs
September 18, 2024 at 3:58 PM
Agora cai na página dos webhooks da Stripe. Porém ta perto da hora de almoçar e ninguém é de ferro n é mesmo?

docs.stripe.com/payments/han...

Porém descobri que tem uma CLI que tu de algum jeito consegue interceptar staging, curioso pra ver isso na prática 👀👀👀
September 18, 2024 at 3:52 PM
Descobri que a Stripe tem uma lista de cartões que tu pode usar em staging. Com isso, já tenho o primeiro pagamento rolando e deixo aqui o link dos cartões fake docs.stripe.com/testing#cards
September 18, 2024 at 3:40 PM
Bom, eu não quero ficar gastando enquanto testo. Próximo passo vai ser configurar tudo de staging pra processar os pagamentos e poder salvar as coisas:

Inclusive, alguém sabe se da pra já criar em staging e replicar em prod ou vice-versa na stripe? 👀
September 18, 2024 at 3:32 PM
Com o link de pagamento, chega até a ficar tosco né dashudhusa

Mas agora eu preciso conseguir interceptar que houve um pagamento 🤔 pra pegar quem foi a pessoa que pagou
September 18, 2024 at 3:26 PM
Gastei um tempo divagando querendo fazer o custom payment flow, mas vou começar pelo link de pagamento. Repara que eu defini as metas lá no começo, mas mesmo assim a vontade de codar foi maior por uns minutos
September 18, 2024 at 3:17 PM
Importante mencionar que eu tinha cadastrado o produto errado. Na stripe vc tem:

- Produto
- Preço

No caso eu to definindo que pro produto do café soutinho vai ter uma cobrança única, o formato anterior era assinatura. Mas foge do escopo aqui hehe
September 18, 2024 at 3:02 PM
Durante o momento que eu tava cadastrando o primeiro produto, resolvi que vou listar todo mundo que me pagar um café num mural agradecendo!
September 18, 2024 at 2:58 PM