Não criar chave efêmera por tentativa de Stripe

FixBillingService
Navios
26 de agosto de 2026 às 02:54 UTC
Autor
Kamo
Enviar
674fa0f

Segunda revisão (Relatório 17) considerou que "isto é uma criação?" é necessário, mas Não é suficiente. A questão que importa: pode este assunto legitimamente ser criado mais de uma vez dentro da janela 24h da chave, Por uma razão que não seja uma repetição da rede? Dois cria resposta sim e foram erroneamente digitados no round 1: - SetupIntent.create (AccountPagamentoMethodService, exposto via createSetupIntent em dois controladores, retorna o segredo do cliente direto para o navegador): uma chave estável significava um segundo "adicionar um cartão" tentativa no mesmo dia repetiu a primeira tentativa já consumido cliente secreto, silenciosamente falhando no add. - Session.create (ConsumerCheckoutService): uma chave estável significava um abandonar-e-retirar, ou comprar-então-atualizar o mesmo plano no mesmo dia, Repetiu a Sessão de Verificação ORIGINAL -- possivelmente já concluída ou expirado -- entregando ao cliente um link morto. Ambos são objetos efêmeros, de uso único, por tentativa, não em pé umas. Uma duplicata existe inerte (a não utilizada expira); a replay velho é o dano real, que é o comércio oposto de cada criação durável (Cliente, Assinatura, Preço, Produto, Medidor), onde uma duplicata É o dano que toda esta tarefa existe para prevenir. Removeu a chave de ambos; o estado final é de 8 teclas (todos duráveis cria, inalterado), 12 não-chaves (2 efêmeros criam + 10 mutações do round 1). A classe Javadoc da StripeIdepotência agora declara todas as três classes -- durável cria chaveado, efêmero cria sem chave, mutações sem chave -- com um traço de ruptura de betão para cada classe não- chaveada (o Um do primeiro round e o segunda-carta-mesma-dia de um cliente-secreto para SetupIntent, que é o mais surpreendente dos dois). O teste de cobertura agora tem um Rede regex para a frente por classe (as criações duráveis devem ter uma chave); efémero cria e as mutações não devem) mais uma contagem exata por arquivo de StripeIdempotence.forKey( preso aos 8 cria duráveis, que é o que realmente pega uma chave adicionada a qualquer uma das variáveis locais pontos cegos do receptor. Verificado por reintroduzir temporariamente uma chave sobre SetupIntent.create, confirmando tanto a nova verificação regex quanto o A conta exacta falha, e depois reverte a sonda.

Todas as alterações

Como o que vês no transporte?

Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.

Começar Livre Para SempreVer Preços