【问题标题】:Trying to validate PayPal payment amount - MySQL IPN尝试验证 PayPal 付款金额 - MySQL IPN
【发布时间】:2012-09-17 01:55:18
【问题描述】:

我正在尝试验证 Pay Pal 订阅 IPN 的 mc_gross 变量。

以下代码不断为我提供 amount_data 的“资源 id #12”值。我要验证的数字是用户付款时放在表中的 0.05。变量 $id 测试正确,数字 (0.05) 在 payment_amount 列中 - 所以我不知道为什么它不能执行此查询。我是 MYSQL 新手,所以对于任何明显的错误,我深表歉意。

$payment_amount = mysql_real_escape_string($_POST['mc_gross']);
   $amount_data = mysql_query ("SELECT * FROM subscriber WHERE payment_amount = '$payment_amount' AND id = '$id' "); 
    if ($amount_data != $_POST['mc_gross']) {
        $errmsg .= "'mc_gross' does not match: ";
        $errmsg .= $_POST['mc_gross']."\n";
        file_put_contents(dirname(__FILE__).'/logs/ipn.log',"\n###AMOUNT Don't MATCH Amount in Database='$payment_amount' Amount in requested='$amount_data'for id '$id'###\n",FILE_APPEND); 
    }

【问题讨论】:

    标签: php mysql paypal paypal-ipn


    【解决方案1】:

    这是有效的:

    $payment_amount = mysql_real_escape_string($_POST['mc_gross']);
        //$amount = mysql_query ("SELECT payment_amount FROM subscriber WHERE id = '$id'");
        $amount_data = mysql_query ("SELECT * FROM subscriber WHERE payment_amount = '$payment_amount' AND id = '$id' "); 
        $row = mysql_fetch_row($amount_data);
        if ($row[6] != $_POST['mc_gross']) {
            $errmsg .= "'mc_gross' does not match: ";
            $errmsg .= $_POST['mc_gross']."\n";
            file_put_contents(dirname(__FILE__).'/logs/ipn.log',"\n###AMOUNT Don't MATCH Amount in Database='$row[6]' Amount in requested='$payment_amount' for id '$id'###\n",FILE_APPEND); 
        }
    

    【讨论】:

      【解决方案2】:

      使用mysql_fetch_row()获取$amount_data.Mysql_query() 只返回resouce id

      $amount_data = mysql_query ("SELECT * FROM subscriber WHERE payment_amount = '$payment_amount' AND id = '$id' "); 
      $row = mysql_fetch_row($amount_data);
      
      echo $row[0]; 
      

      查看链接http://php.net/manual/en/function.mysql-fetch-row.php

      【讨论】:

      • 但这会返回一个数组。我不能只选择 payment_amount 和 id 收敛的单元格吗?
      • @user1390395 print_r($amount_data) 并发布您的结果
      猜你喜欢
      • 2013-02-11
      • 1970-01-01
      • 2013-03-10
      • 2020-09-02
      • 2014-10-23
      • 2012-04-10
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      相关资源
      最近更新 更多