处理PayPal IPN:是必要的吗?我可以使用其他方法吗?

时间:2010-08-11 15:17:53

标签: paypal paypal-ipn paypal-soap

阅读PayPal开发人员文档(这是很多文档)我不确定IPN是强制性的还是我可以忽略它。

当然,为了知道付款是否正确,我必须实施其他一些机制。我想做这样的事情:

  • 使用returnUrl和cancelUrl中的不同代码创建新的付款(通过网络服务)。此代码是为每次付款随机生成的,并存储在DB中。

  • 当用户完成付款(OK或KO)后,PayPal会将其页面重定向到我的网站,我将能够知道代码是否正确。

  • 如果出现问题(用户关闭窗口,响应未到达,代码不匹配......)将手动处理PayPal网站上的交易。

你认为这样可以吗?

感谢。

2 个答案:

答案 0 :(得分:1)

不,我觉得这听起来很糟糕。

用户可以跳过付款步骤,只需将所需的网址一起编辑,然后将其粘贴到浏览器地址栏中即可。这会给他们免费的产品。

收到URL后,您可以使用PayPal SOAP API验证交易。你只是无法在第二次收到它时信任该网址。

您需要注意不要让用户向您发送其他人付款的网址,并为该付款收到两次产品。 (一次到真正的收款人,一次到欺诈者......)

确认您的报酬是正确的,这一点很重要。 (假设您关心的是您获得了正确的金额。)

通常,当您使用PayPal进行交互时,无论使用何种方法,了解软件安全性和威胁建模都很重要。否则,您实际上只有很小的机会免受欺诈。

答案 1 :(得分:1)

Paypal已经将他们的系统设计为他们认为可以的逻辑安全。我不会重新设计他们花了很长时间开发和思考的系统。您只是忽略了许多安全功能,这些功能对您有利。

如果这两个密钥在任何时候都在原始格式客户端上都是可访问的,那么你就有一个易于破解的系统。只需点击进入Pay​​pal支付页面,然后在浏览器中输入退货地址而无需实际支付,您的系统将把它视为有效交易,除非您在发货前手动检查自己(对于egoods来说,为时已晚虽然)。

或者黑客可以猜出返回键。它必须很长,并且高度随机化,如果它是一个增量键,你再次拥有一个超级易于破解的系统。

验证付款IPN至关重要。不要走捷径,在涉及金钱的时候做正确的事。