2012-09-25 2 views
0

Pay Pal 가입 IPN에 대한 mc_gross 변수를 확인하려고합니다.PayPal 지불 금액 확인을 시도 중 - MySQL IPN

다음 코드는 amount_data에 대해 "Resource 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); 
    } 

답변

1

사용 mysql_fetch_row()은 $ amount_data.Mysql_query()가이 일을 무엇 링크 http://php.net/manual/en/function.mysql-fetch-row.php

+0

그러나 이 배열을 반환합니다. payment_amount와 id가 수렴하는 셀을 선택할 수 없습니까? – frankie

+0

@ user1390395 print_r ($ amount_data) 및 결과 게시 –

0

을 확인에만 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]; 

반환하려면 :

$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); 
    }