Pergunta

Lendo a documentação do desenvolvedor do PayPal (e isso é muita documentação), não tenho certeza se o IPN é obrigatório ou posso simplesmente ignorá -lo.

Obviamente, devo implementar algum outro mecanismo para saber se o pagamento estava correto. Eu pensei em fazer algo assim:

  • Crie um novo pagamento (via serviço da Web) com um código diferente em ReturnURL e CancelUl. Esses códigos são gerados aleatoriamente para cada pagamento e armazenados em banco de dados.

  • Quando o usuário terminar o pagamento (OK ou KO), o PayPal redirecionará sua página para o meu site e poderei saber se o código está correto.

  • Se houver um problema (o usuário fecha a janela, a resposta não chegar, os códigos não correspondem ...) serão tratados manualmente as transações no site do PayPal.

Você acha que está tudo bem?

Obrigado.

Foi útil?

Solução

Não, acho que isso parece horrível.

O usuário pode pular a etapa de pagamento e simplesmente editar o URL necessário e colá -lo na barra de endereços do navegador. Isso lhes daria um produto gratuito.

Você pode usar as APIs SOAP do PayPal para verificar a transação depois de receber o URL. Você simplesmente não pode confiar que o URL cegamente no segundo em que o recebe.

Você precisará ter cuidado para não permitir que os usuários enviem o URL do pagamento de outra pessoa e recebam o produto duas vezes por esse pagamento. (Uma vez para o beneficiário real, uma vez para o fraudador ...)

É importante que você verifique se recebeu o valor correto. (Supondo que você se importe com o valor correto.)

Em geral, quando você faz interface com o PayPal, qualquer que seja o método que você use, é importante que você entenda a segurança de software e a modelagem de ameaças. Caso contrário, existe realmente apenas uma pequena chance de você estará seguro por fraude.

Outras dicas

O PayPal projetou seu sistema para ser tão logicamente seguro quanto eles acham que pode. Eu não começaria a redesenhar um sistema em que eles passaram muito tempo desenvolvendo e pensando. Você está apenas ignorando tantos recursos de segurança que existem para seu benefício.

Por um lado, se essas duas teclas forem acessas no lado do cliente de formato bruto a qualquer momento, você terá um sistema facilmente hackeable. Basta clicar na página de pagamento do PayPal e digitar o endereço de devolução no seu navegador sem realmente pagar, seu sistema o tratará como uma transação válida, a menos que você verifique manualmente antes de despachar as mercadorias (para os egonos, seria tarde demais no entanto).

Ou o hacker pode adivinhar a chave de retorno. Vai ter que ser longo e altamente randomizado, se for uma chave incrementadora, você novamente terá um sistema super facilmente hackeável.

Para verificar um pagamento, o IPN é essencial. Não tome atalhos, faça certo quando houver dinheiro envolvido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top