security - PayPal 按钮返回 url 用法

标签 security paypal paypal-ipn verification paypal-buttons

我的网站上有一个 PayPal html 按钮,它应该返回到我的网站并带有数据。我的理解是有一个返回 url(带有返回方法)和一个可以执行此操作的通知 url。通知 url 需要一个 IPN 监听器,它看起来像是在进行验证检查,这很好。我没有看到对返回 url 的任何此类验证检查,但在大多数情况下(例如,付款是否成功),我似乎想根据验证检查的结果更新返回 url。此外,我需要知道 PayPal 实际上请求了返回 url 来更新数据库,否则这似乎为通过返回 url 进行 csrf 攻击打开了大门。

我是 PayPal 按钮的新手,但我还没有看到任何关于同时使用通知 url 和返回 url 的信息。那么我应该怎么做才能解决返回网址的这些问题?

最佳答案

为了消除困惑:

  1. return_url 只是命名您在 Paypal 流程完成时要返回的 webapp 页面。还有一个 cancel_url 如果您想要一个单独的页面用于用户取消,则可以使用它。回到return_url 并不代表你有钱了。这确实意味着客户已经完成了 Paypal 交易,但可能会出现资金延迟,最终可能会导致付款失败,所以不要指望你的鸡。

  2. notify_url 是您的网络应用程序中 POST 处理程序的 URL。不是一页。 POST 处理程序应该执行您提到的验证步骤,然后它应该检查 txn_type 和其他变量以查看正在通知的内容。可能是付款、订阅、终止、付款失败、撤销、取消撤销……只有这些交易类型中的一些意味着您实际上已经从客户那里收到了钱。

I need to know PayPal actually requested the return url to update the db

一点也没有。请勿在此处采取任何商业行为。

  • return_url 页面上,您应该感谢他们的业务,并告诉他们他们请求的操作/购买/订阅等将在 Paypal 付款流程完成后完成。

  • notify_url 处理程序应处理与接收付款、获得撤销、订阅取消等相关的所有业务操作。return_url cancel_url 页面不应执行任何操作。没有钱 => 还没有行动。

关于security - PayPal 按钮返回 url 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39441562/

相关文章:

结帐时未出现 paypal 付款方式 drupal ubercart

php - PHP中的PayPal IPN无法向IPNPB发送请求

magento - 以编程方式(通过 Credit Memos?)清理 Magento 中的 Paypal Reversal

angularjs - 是否可以使用客户端脚本设置 IPN 监听器?

使用脚本进行 MySQL 身份验证,无需以纯文本形式提供密码

php - IPN 验证回发到 HTTPS

java - sun.security.x509.CertAndKeyGen 和 sun.security.pkcs.PKCS10 - 在 JDK8 中缺失。实现建议

php - 发送电子邮件,当 paypal 付款时

windows - Linux 与 Windows 中的文件权限

apache - 无需告别压缩即可减轻 BREACH 攻击