1

阅读 PayPal 开发人员文档(这是很多文档)我不确定 IPN 是否是强制性的,或者我可以简单地忽略它。

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

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

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

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

你觉得这样可以吗?

谢谢。

4

2 回答 2

1

不,我认为这听起来很糟糕。

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

收到 URL 后,您可以使用 PayPal SOAP API 来验证交易。您只是不能在收到该 URL 的那一刻就盲目地信任它。

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

确认您收到的金额正确,这一点很重要。(假设你关心你得到了正确的金额。)

通常,当您与 PayPal 交互时,无论您使用何种方法,了解软件安全和威胁建模都很重要。否则,您真正免受欺诈的可能性很小。

于 2010-08-11T15:25:18.597 回答
1

Paypal 已将他们的系统设计为在逻辑上尽可能安全。我不会开始重新设计他们花了很长时间开发和思考的系统。您只是忽略了许多有益于您的安全功能。

一方面,如果这两个密钥在任何时候都可以在原始格式的客户端访问,那么您就有一个易于破解的系统。只需点击到 Paypal 付款页面,然后在浏览器中输入退货地址而不实际付款,您的系统会将其视为有效交易,除非您在发货前手动检查自己(对于电子商品,为时已晚尽管)。

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

对于验证支付 IPN 是必不可少的。不要走捷径,有钱就做对。

于 2010-08-11T15:25:39.067 回答