php - 如何检查 paypal iPN 是否响应(用于保护黑客)?

标签 php mysql paypal paypal-ipn

如何检查 paypal ipn 响应(用于保护黑客)?

现在我使用此代码进行检查

if (!isset($_POST["txn_id"]) && !isset($_POST["txn_type"]))
    {  //user press paypal button//  }
else
    { // paypal ipn response and insert data to mysql//   }

但我认为这个代码不安全,因为如果用户在 paypal 按钮表单中创建假 $_POST[txn_id]$_POST[txn_type] 我的代码将转到向mysql插入数据。

请帮助我创建可以保护黑客的代码。

谢谢^^

最佳答案

查看 IPN solution PayPal provides 。它为您处理所有这一切。我只是将其融入其中。

如果您查看该脚本,您将看到它如何解析 POST 到它的数据,然后重新生成 NVP 字符串以使用 CURL 直接 POST 回 PayPal。对该请求的响应将包含 VERIFIED 或 INVALID,并且您可以据此相应地处理 IPN。

同样,该模板会为您完成所有操作,因此您只需从第 105 行开始,其中包含用于判断 IPN 是否经过验证的 if/then 逻辑。

关于php - 如何检查 paypal iPN 是否响应(用于保护黑客)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24387478/

相关文章:

javascript - 解析 AJAX 请求的结果

php - 比较php中的数组值

php - 来自PHP服务器的AngularJS流音频

php - CSS 不适用于 ajax 响应

php - 如何根据表头将多条记录显示为表头和final

mysql - 如何找到现有的 ("parent") 记录并向其添加关联记录

paypal - 不接受处理万事达卡的 CE 协议(protocol)

等同于 GetExpressCheckoutDetails 的 PayPal REST API

mysql - Rails ActiveRecord - 有没有办法在没有 id 的情况下对表执行操作?

ssl - Paypal IPN 监听器