2017-07-11 6 views
0

これは私の支払いフォームと成功ページです。 支払いフォームは正常に機能していますが、success.phpページはpaypalからデータを取得していません。私はすでにpaypalアカウントにIPNと自動返品URLを追加しましたが、動作していません。誰か助けてください。PayPal IPNコールバックを受信して​​いません

<?php 
 
include 'dbConfig.php'; 
 

 
//Get payment information from PayPal 
 
$item_number = $_GET['item_number']; 
 
$txn_id = $_GET['tx']; 
 
$payment_gross = $_GET['amt']; 
 
$currency_code = $_GET['cc']; 
 
$payment_status = $_GET['st']; 
 

 
//Get product price from database 
 
$productResult = $db->query("SELECT price FROM products WHERE id = ".$item_number); 
 
$productRow = $productResult->fetch_assoc(); 
 
$productPrice = $productRow['price']; 
 

 
if(!empty($txn_id) && $payment_gross == $productPrice){ 
 
\t //Check if payment data exists with the same TXN ID. 
 
    $prevPaymentResult = $db->query("SELECT payment_id FROM payments WHERE txn_id = '".$txn_id."'"); 
 

 
    if($prevPaymentResult->num_rows > 0){ 
 
     $paymentRow = $prevPaymentResult->fetch_assoc(); 
 
     $last_insert_id = $paymentRow['payment_id']; 
 
    }else{ 
 
     //Insert tansaction data into the database 
 
     $insert = $db->query("INSERT INTO payments(item_number,txn_id,payment_gross,currency_code,payment_status) VALUES('".$item_number."','".$txn_id."','".$payment_gross."','".$currency_code."','".$payment_status."')"); 
 
     $last_insert_id = $db->insert_id; 
 
    } 
 
?> 
 
    <h1>Your payment has been successful.</h1> 
 
    <h1>Your Payment ID - 
 
    <?php echo $last_insert_id; ?>.</h1> 
 
    <?php }else{ ?> 
 
    <h1>Your payment has failed.</h1> 
 
    <?php } ?>

支払いとその作業罰金を取得しますが、私はにIPNメッセージを取得し、自分のデータベースへのデータではないのですために歌いますか?

<!-- begin snippet: js hide: false console: true babel: false -->

<?php 
//Include db configuration file 
include 'dbConfig.php'; 

//Set useful variables for paypal form 
$paypalURL = 'https://www.sandbox.paypal.com/cgi-bin/webscr'; //Test PayPal API URL 
$paypalID = '[email protected]'; //Business Email 

?> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>PayPal Standard Payment Gateway Integration by CodexWorld</title> 
</head> 
<body> 
<?php 
//Fetch products from the database 
$results = $db->query("SELECT * FROM products"); 
while($row = $results->fetch_assoc()){ 
?> 
<img src="images/<?php echo $row['image']; ?>"/> 
<br/>Name: <?php echo $row['name']; ?> 
<br/>Price: <?php echo $row['price']; ?> 
<form action="<?php echo $paypalURL; ?>" method="post"> 
<!-- Identify your business so that you can collect the payments. --> 
<input type="hidden" name="business" value="<?php echo $paypalID; ?>"> 
<!-- Specify a Buy Now button. --> 
<input type="hidden" name="cmd" value="_xclick"> 
<!-- Specify details about the item that buyers will purchase. --> 
<input type="hidden" name="item_name" value="<?php echo $row['name']; ?>"> 
<input type="hidden" name="item_number" value="<?php echo $row['id']; ?>"> 
<input type="hidden" name="amount" value="<?php echo $row['price']; ?>"> 
<input type="hidden" name="currency_code" value="USD"> 
<!-- Specify URLs --> 
<input type='hidden' name='cancel_return' value='https://example.com/paypal_integration_php/cancel.php'> 
<input type='hidden' name='return' value='https://example.com/paypal_integration_php/success.php'> 
<input type='hidden' name='notify_url' value='https://example.com/paypal_integration_php/ipn.php'> 
<!-- Display the payment button. --> 
<input type="image" name="submit" border="0" 
src="https://www.paypalobjects.com/en_US/i/btn/btn_buynow_LG.gif" alt="PayPal - The safer, easier way to pay online"> 
<img alt="" border="0" width="1" height="1" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" > 
</form> 
<?php } ?> 
</body> 
</html> 

答えて

-1

ブラザー使用$_REQUEST方法の代わりに、あなたの取引の詳細を取得する$_GET方法。あなたがあなたを欲しがることを願っています

+0

データは$ _REQUEST'あなたはそれがどこから来るのかわからない示し '使用して、' $ _GET'または '$ _POST'のいずれかから来ることができます。 –

+0

はい、あなたは正しい@MatteoTassinariですが、私は同じコードを数日前に試してみました。同じ問題に直面していますが、$ _requestを$ _GEtの場所に置いたときにうまくいきます。それは私がこの答えを与える理由です。彼が彼の問題から脱出するのに役立つことを願っています。 – Vishal

+0

'$ _REQUEST'からデータを取得し、' $ _GET'からデータを取得しなかった場合、おそらくデータは '$ _POST'にあります。 –

0

あなたが使用しているコードは、IPNではなく、PDT機能の可能性が高いです。 IPNのサンプルコードについては、以下のページをご確認ください。

https://github.com/paypal/ipn-code-samples

以外にも、あなたはその詳細と一緒に、2つの特徴の比較のためにページの下にチェックすることがあります。

https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNPDTAnAlternativetoIPN/

関連する問題