Como vender uma passagem de trem eletrônica





Temos lidado com trens elétricos em Tutu há 17 anos. Você pode ter visto nossa programação como criança ou estudante. A todo esse tempo, nos perguntam quando será possível comprar a passagem do trem de interesse diretamente pelo aplicativo. Por 17 longos anos, esperamos pelo início de um futuro brilhante e levou metade do planeta para ficar em quarentena para que os bilhetes digitais se tornassem muito mais procurados.



A razão é que ninguém ainda descobriu como vendê-los de forma que:



  1. Por um lado - exatamente o mesmo preço do caixa;
  2. Por outro lado, para garantir que não haja abusos como “Vejo um controlador em duas etapas - compro um ingresso”;
  3. Rápido, conveniente e confiável.


O terceiro ponto ainda não cresceu junto. Agora vou lhe dizer como esse esquema já funciona de maneira inteligente. E direi que vejo todos os pré-requisitos para torná-lo conveniente no futuro.



Vamos examinar como um usuário compra e o que acontece em diferentes sistemas durante esse processo.



A maneira mais complicada de sempre, sem bugs



Etapa 1: seleção e pagamento do bilhete. Tudo é muito simples e familiar aqui. Dois de nossos aplicativos móveis com horários receberam botões "comprar" para os trens TsPPK (até agora apenas o TsPPK, sim, ou seja, a maioria das direções de Moscou).





Os preços no aplicativo são exatamente os mesmos que no checkout. Usamos os mesmos mecanismos que o CPPK usa para vender ingressos, parece uma espécie de API técnica interna. Demorou muito para resolver tudo isso, porque bibliotecas prontas para iOS e Android não se comportavam 100% estáveis. A diferença entre "quase nunca trava" e "às vezes trava" às vezes significa criar wrappers mais avançados tecnologicamente.



Mas vamos continuar comprando uma passagem:





O Apple Pay e a carteira do Google foram difíceis para nós neste projeto devido aos recursos do gateway. Esta história será melhor contada por meu colega mais tarde. Inicialmente, estudamos a possibilidade de transferir um cliente para o aplicativo oficial do CPPK. Foi desenvolvido pela empresa Movista, vencedora do concurso relevante. Depois de vários experimentos, decidimos que muito trabalho de integração ainda é melhor do que alterar a interface no momento da compra.



Etapa 2: PD. Aqui estamos nós para a próxima surpresa de poder incrível: se você não precisa preencher seu nome completo e número de passaporte em um checkout regular, então você o faz online. Sim, mesmo para passagens de trem. A base é o despacho do Ministério dos Transportes nº 322.





Aqui está uma prova :

:



  • ( ) ;
  • ;
  • ;
  • ;
  • () ;
  • — , , * ( ), , , ;
  • .


3.4. :



  • ( ) ;
  • ;
  • ;
  • ;
  • () ;
  • — , , * ( ), , , ;
  • .


Como você pode imaginar, é aqui que os usuários ficam assustados e nós tentamos nosso melhor para reduzir sua hesitação. Mas em testes beta, houve muita insatisfação com a execução deste pedido.



Se você acha que após o pagamento tem um bilhete em mãos, ainda não. Você tem um documento em mãos que pode virar bilhete ao ser acionado na catraca da estação.



Portanto, passo 3: passe pela catraca vermelha. Na verdade, esta é uma etapa extra, mas é um requisito de segurança: primeiro você deve comprar uma passagem, depois passar pela catraca:











catracas vermelhas são adequadas (geralmente há 1 ou 2 nas estações CPPK) e validadores verdes. Na parte superior da postagem, eles são grandes, mas geralmente têm a seguinte aparência:







O que acontece:



  1. Você compra um ingresso, nós criamos uma reserva no servidor.
  2. Você paga pela passagem, os dados são recebidos do gateway de que o pagamento foi realizado com sucesso.
  3. O CPPK envia um tíquete e uma chave base64 para o telefone, que é a metade da chave para ativar esse tíquete.
  4. A outra metade da chave deve ser retirada na catraca ou no validador. Você vai até a catraca, escaneia o código QR nela.
  5. Em seguida, uma chave é montada a partir das duas metades, que "abre" o tíquete. Você coloca o seu tíquete na catraca e passa.


Importante :



  • A catraca não tem lógica para verificar o código QR e a passagem. Ele simplesmente mostra suas partes em constante mudança da chave na forma de códigos QR com marcas de estação costuradas ali.
  • Você não precisa da Internet para conectar as metades da chave e obter um tíquete. Tudo acontecia quase que imediatamente após a compra, você recebia um tíquete, e aí tudo era feito offline no celular dentro do aplicativo - tanto sua ativação quanto seu display.
  • QR- — . — . .


Se tudo correr bem, você receberá um ticket. Se tudo deu errado (em vez de uma catraca, você digitalizou sua foto cuidadosamente armazenada de outra estação), ou você recebe um tíquete inválido (se você o ativou com o código QR de ontem, por exemplo), ou o tíquete não é ativado. A propósito, a oportunidade de obter um tíquete inválido nos fez pensar que seria fácil reverter o código da biblioteca.



Resta a última tarefa : como o controlador pode verificar o tíquete eletrônico? Afinal, ele não difere visualmente da captura de tela do mesmo ingresso! Acontece que o CPPK encontrou uma solução quase engenhosa: você precisa abrir um tíquete no aplicativo e tocar nele. O tíquete ativado começará a girar. Presume-se que isso protege de forma confiável a maioria da população de falsificações no Photoshop.







Nós adicionamos a reativação caso você saia na estação ao longo do caminho.



Agora vamos passar para as coisas doces - insetos!



A catraca vermelha pode não abrir. Apenas pegue e não abra. Porque algo em seu cérebro de catraca não dispara a tempo. Por exemplo, proteção que evita que você passe o mesmo código QR para duas catracas ao mesmo tempo. A probabilidade é muito pequena, mas existe. Nesse caso, um avô cansado, que está de plantão na delegacia, vai abordar você. Ele já viu isso centenas de vezes e sabe o que significa hesitar na catraca vermelha. Confira o tíquete no aplicativo ("Girando? Girando!") E com calma deixa passar.



O validador verde na plataforma pode não funcionar. Esta é a Rússia, não o Japão, então aqui pode durar mais de 3 minutos no total por ano. Nesse caso, você precisa ir para outro validador e ele está em uma plataforma diferente. A probabilidade também é muito baixa, mas existe. É improvável que uma pessoa comum enfrente tal situação, mas nós a testamos por um longo tempo e ferozmente, então sabemos.



Se você leu o código QR na catraca vermelha no momento de mudar o fluxo (quando eles dizem: “Vá para outro, aqui as pessoas saem do trem”) - você tem que passar exatamente por este, caso contrário você cortará o mesmo código que é responsável por com um bilhete você não passou por todas as catracas de uma vez. O vizinho não é sincronizado imediatamente. Isso significa meio minuto de atraso ou verificar a passagem pelo avô de plantão. "Está girando? Girando! "



FAQ pequeno



- Posso comprar um bilhete eletrônico de trem do metrô?

Pode. É por isso que o obrigamos a comprar na escada rolante.



- Se a conexão for cortada após a ativação do tíquete, o tíquete permanecerá?

Sim. E vai girar.



- Você precisa de internet quando o tíquete é acionado na catraca?

Não, tudo acontece offline dentro do software do telefone. Você já tem um tíquete, ele é simplesmente descriptografado.



- Se eu vir um controlador, é tarde demais para apressar a compra de uma passagem eletrônica, certo?

Sim, se você não tiver um código QR da estação mais próxima disponível. E conhecendo nossa mentalidade, não é tão completamente sarcasmo.



- Ha, e se eu o fotografasse de manhã ao passar pela catraca?

Muda regularmente em alguns minutos.



- E se eu entendi o padrão desse código?

O algoritmo de codificação muda à meia-noite e os códigos começam a diferir dos anteriores de maneira muito dramática.



- Se eu ativar a passagem com o código QR errado, o que acontecerá?

Então você terá um tíquete inválido. Ou uma passagem para a data errada.



- Por quanto tempo o e-ticket é válido?

Após a ativação, o bilhete é válido até às 03:00 do dia seguinte. Ou seja, você pode escanear na catraca às 7h e usar às 21h. Não tem problema.



- E se eu pegar o trem às 00:01?

Na junção das datas, existe um Heisenbug no sistema de verificação de tickets (tickets de papel também, isto é, não estão em nossa pilha), quando as catracas podem não responder ao ticket de ontem. O processamento é normal - você precisará chamar a catraca de plantão, que olhará o tíquete giratório e deixará você passar.



- E se eu passar na catraca às 2:59?

Se no segundo que transcorreu entre a ativação da passagem e a passagem para a catraca terminou o dia técnico, a questão também deve ser resolvida por avô. Ele vai suportar tudo.



Outros ingressos



Estamos negociando com outras operadoras a venda de ingressos com os mesmos preços de bilheteria. Em muitas direções, não existem essas dificuldades com a ativação do bilhete, por exemplo, na maioria dos trens Leningradskoye você pode comprar um bilhete dentro do trem. Naturalmente, isso cria uma vulnerabilidade conhecida e é necessário encontrar algum meio-termo que seja adequado a todos. Mas temo que esta seja mais uma área de trabalho comunitário do que de desenvolvimento. Porém, se você tiver ideias, ficaremos felizes em implementá-las.



All Articles