2017-08-27 19 views
3

私は最近、私のウェブサイトにPaypalのIPNを実装しようとしました。 ここで私は(サンドボックス)Paypal IPN、欠落したPOSTデータ

1撮影した手順は以下のとおりです。2つのサンドボックスアカウント(買い手/売り手)

2を作る:売り手のアカウントにIPNを有効にして、私のPayPalIPN.php

にURLを設定します

PayPalIPN.phpが

3:ボタンを作成し、ボタンは購入後はSuccess.phpに行く

はSuccess.phpはhttps://github.com/paypal/ipn-code-samples/blob/master/php/example_usage.php

です

今私は、今すぐ購入をクリックして私のサンドボックスの購入アカウントにログインし、それを購入して、再び商人に私を取る押したときに、私はこのエラーを取得する

Fatal error: Uncaught Exception: Missing POST Data in /home/site/public_html/PayPalIPN.php:60 Stack trace: #0 /home/site/public_html/success.php(7): PaypalIPN->verifyIPN() #1 {main} thrown in /home/site/public_html/PayPalIPN.php on line 60

これは例外

をスローラインであります
if (! count($_POST)) { 
     throw new Exception("Missing POST Data"); 
    } 

私は本当にこれに困惑しています。私はここでこの問題に関して1つの質問しか見ていないし、Paypalのチュートリアルではこのエラーが発生したとき何が間違っているかは言及していない。私は私が間違った場所にあるURLの一部を使用していたようなので、それはそう

UPDATE任意の助けに感謝します。だから、私は 'paypalipn.php'にIPNクラスを持ち、paypalipn.phpを含む 'success.php'という別のファイルを持っていて、IPNクラスを使って検証済みかどうかを調べます。リスナーURLをsuccess.phpに設定しました。購入時には、ユーザーは 'purchased.php'にリダイレクトされます。私が抱えている問題はsuccess.phpが呼び出されないようです。それは単に動作しません..私はまた

notify_url=https://www.website.com/success.php 

を使用して、[今すぐ購入]ボタンの変数にURLを設定しようとしたまだ呼ばれ得るように見えることはありません。私は本当に私が間違っていることを混乱しています...

答えて

0

呼び出された.phpのようにエラーがありました。エラーを修正した後、呼び出されたようです。今私はちょうどIPNにカスタム変数を正しく送る方法を見つけようとしています。私は$ _POSTから間違ったことを続けています。

0

あなたのURLが正しいことを確認してください。

このようなはずはありませんか?

notify_url=https://www.website.com/paypalipn.php 

return_url=https://www.website.com/success.php 

POST変数を受け取っていることを確認するには、success.phpで次のコードを使用して画面に表示します。

カスタムデータを追加するには、フォーム/ボタンを使用している場合は次のようにします。

$custom_data = $myvar; 

とPayPalの形で次のように追加します。

<input type="hidden" name="custom" value="<?php echo $custom_data ;?>"> 

ペイパルは掲載変数としてごreturn_urlにそれを返す必要があります。