Executámos um reembolso na nossa própria conta para verificar se o livro se invertia corretamente. Invertia-se. Depois alguém leu o resto do estado da conta, e foi aí que estava a verdadeira descoberta: o plano ainda estava ativo, e continuaria até meados do mês seguinte.
Dinheiro devolvido, acesso mantido. Repetível todos os meses por qualquer pessoa disposta a clicar em Reembolsar. Não foi um teste que o encontrou, porque nenhum teste fazia essa pergunta.
Terminar o período que o pagamento comprou
Num reembolso total, o período que esse pagamento abriu termina agora imediatamente, e um evento de ciclo de vida regista a razão.
Imediatamente — mas não para o nada. Se estavas num plano, subiste para um mais caro, e o pagamento da atualização é reembolsado, voltas ao plano em que estavas, não ao nível gratuito. Pagaste esse mês separadamente, e não foi reembolsado. Tomá-lo também seria a plataforma a servir-se de algo que o cliente ainda possui. Só alguém sem um plano anterior ainda ativo cai para o gratuito.
O direito de acesso tem duas metades
A primeira versão desta correção terminava a linha de subscrição e parava aí. Mas aquilo a que tens direito depende de duas coisas: a linha que o orçamento lê, e um papel concedido quando o pagamento teve sucesso. Qualquer outro caminho que termine uma subscrição retira esse papel explicitamente. Este não retirava, pelo que uma conta reembolsada teria sido cancelada no papel enquanto mantinha as permissões do nível pago.
O papel é agora também retirado, e aterra no nível do plano restaurado, não num "gratuito" genérico — o mesmo raciocínio da restauração em si.
Avisar o fornecedor
A página da conta dizia Nível Gratuito. O painel do fornecedor de pagamento dizia Ativo, próxima faturação no mês seguinte. O reembolso tinha terminado as coisas do nosso lado e nunca avisara o outro lado, por isso o cliente estava em fila para ser faturado novamente por um plano pelo qual tinha sido reembolsado e que já não podia usar — e não tinha forma de o parar a partir dos nossos ecrãs, porque cancelar exige uma subscrição ativa, e nós tínhamos acabado de cancelar a dele.
Um reembolso agora para a renovação automática no fornecedor que emitiu o pagamento. Não uma cessação imediata: a renovação automática para, para que não se mova mais dinheiro, e o próprio registo do fornecedor extingue-se de acordo com o seu próprio calendário em vez de ser arrancado por baixo de um reembolso que acabou de processar.
Com uma exceção, que o proprietário detetou antes de sair. Se o plano para o qual foste restaurado corre sobre a mesma subscrição do fornecedor, cancelá-la deixar-te-ia com um plano que nunca renova e nunca fatura — a imagem espelhada exata do erro que isto existe para corrigir, e igualmente silenciosa. Esse caso é agora nomeado explicitamente e deixado intacto.
Só o pagamento que abriu o período o pode terminar
Uma atualização a meio do mês fatura, neste fornecedor, uma pequena diferença proporcional sobre a linha existente. Reembolsar essa pequena cobrança teria encontrado uma subscrição, cancelado tudo, procurado um plano anterior, não encontrado nenhum, e feito cair o cliente para o gratuito — por um ajuste de meio de mês. Agora só o pagamento que abriu o período atual o pode terminar. Tudo o que vem depois é uma questão de dinheiro, e o livro já lhe respondeu.
As quatro vias, não só a que está ativa
Três dos quatro processadores de pagamento que suportamos não têm ninguém hoje. A revogação poderia ter sido corrigida apenas na que está ativa, e por pouco não foi assim. A objeção que mudou isso: no dia em que uma das outras for reativada, o buraco volta, e por essa altura ninguém se lembrará de que alguma vez lá esteve.
Este repositório já entregou a mesma classe de armadilha esquecida seis vezes. A revogação vive agora por trás de um único contrato que os quatro processadores chamam numa só linha — para que um futuro responsável que reative um deles a obtenha sem precisar de ter lido nada disto.