paypal - 比较收件人电子邮件是 Paypal IPN 脚本的关键部分吗?

标签 paypal

在标准的 Paypal IPN PHP 脚本中,有这样一行来评估支付是否成功:

if ($_POST["payment_status"] == "Completed" && $_POST["receiver_email"] == $email)

评估付款状态的目的很明显。但据我所知,比较的第二部分似乎并没有增加多少值(value)。

据我所知,$email 值只是您希望将错误和成功付款确认电子邮件发送到的位置。 receiver_email 只是附加到 Paypal 商家帐户的电子邮件。

在我看来,这些可能不是一回事。尤其是在使用 Paypal 沙箱进行测试时,这一直让我感到困惑,因为商家电子邮件地址是在我设置帐户时部分自动生成的,所以无论如何我都不能在这个地方接收电子邮件。

因此,由于两个电子邮件地址可能不同,我最初的想法是这种比较并不那么重要。但也许我遗漏了一个重要的安全考虑因素。

这种比较很重要吗?

最佳答案

是的,在大多数情况下这是一项关键检查,因为如果您在发布请求(按钮)中发送 IPN,恶意用户可能会向他自己的 PayPal 地址付款。

因为您有 2 个 paypal 帐户,所以更容易更换

$_POST["receiver_email"] == $email

in_array($_POST["receiver_email"], array("myemail1", "myemail2"))

就我个人而言,即使您的 IPN URL 被很好地隐藏并配置在您的帐户中,我也不会跳过接收者检查。我的简单方法将使您免受恶意请求的侵害。

关于paypal - 比较收件人电子邮件是 Paypal IPN 脚本的关键部分吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10579476/

相关文章:

javascript - IE 上缺少 Paypal In-Context Express Checkout 按钮

paypal - 作为客户的开发人员创建 Paypal 应用程序

html - 为什么我总是收到 403 禁止使用 PayPal?

php - Paypal 标准 :How to handle Shipping and handlin?

c# - Paypal Rest API 使用模拟账户但不使用真实账户

asp.net - 如何使用 asp.net 设置添加付款方式,如 odesk

PayPal 沙盒商户 ID

php - 无法将我的 PayPal IPN 脚本从 http 1.0 转换为 1.1

paypal - 自动返回在 PayPal Pro 托管解决方案中不起作用?

Paypal 沙盒 - IPN 不工作