18

Paypal への簡単な支払いオプションを設定しようとしていますが、返品と通知の URL に問題や混乱が生じています。私はphpにかなり慣れておらず、以前はaspでこれを達成していましたが、今は迷っています。

SO 私の基本的なペイパル フォーム:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="PayPalForm" name="PayPalForm"  target="_top">
 <input type="hidden" name="cmd" value="_xclick">
 <input type="hidden" name="business" value="email@hotmail.com">
 <input type="hidden" name="amount" value="0.01">
 <input type="hidden" name="item_name" value="Composite Door">
 <input type="hidden" name="item_number" value="<?php echo $orderID ?>">
 <input type="hidden" name="currency_code" value="GBP">
 <input type="hidden" name="cancel_return" value="http://www.mydomain.co.uk/paypal-notcompleted.php">
<input type="hidden" name="return" value="http://www.mydomain.co.uk/paypal-completed.php">
<input type="hidden" name="notify_url" value="http://www.mydomain.co.uk/paypal-completed.php"> 
</form>


  <script>
    document.PayPalForm.submit();
   </script>

フォームがペイパルに投稿され、結果に応じて返されることがわかるように、失敗/キャンセルされた場合は、paypal-notcompleted.php に移動します。

成功すると、paypal-completed.php に移動します。そして、これは私が理解できないところです.IPNを設定していません.私がしたいのは、変数のいくつかを取得することだけです.お客様へ。

notify_url と return_url を同じページとして使用できますか?

ペイパルが期待どおりに完全に投稿しないのはなぜですか (ここで見られるように:ペイパルの通知 URL )。

XMLなどと関係があることは理解していますが、paypalが送り返した変数を $_GET できると思いました。誰かがこのようにしたことがありますか?どこが間違っているのか教えてもらえますか?

4

3 に答える 3

21

詳細をリターン URL に戻すには、PDTを使用する必要があります。IPNと非常によく似ていますが、 IPNはサーバー上のサードパーティのIPNリスナー スクリプトで使用することを目的としていますが、リターン URL で使用することを目的としています。

PDTは、リターン URL ページでユーザーにトランザクションを表示するだけで問題ありませんが、PDTを使用して支払い後の処理(データベースの更新、電子メールの領収書の送信など)を行うことはお勧めしません。 PayPal アカウントで自動返品が有効になっている場合でも、ユーザーはこのページに戻ります。

IPNは、支払い完了後にユーザーがサイトに戻ったかどうかに関係なく、トランザクションが発生するたびにトリガーされます。

通知 URL は IPN にのみ使用され、IPN の PayPal プロファイルの設定を上書きします。リターン URL にデータが返されるようにするには、PayPal アカウント プロファイルで PDT を構成する必要があります。

リターンと通知に異なる URL を使用する必要がある場合、同じコードが 2 回実行されます。1 回目はユーザーがサイトに戻ったとき、もう 1 回は PayPal IPN POST からです。

于 2012-11-16T16:19:03.517 に答える
6

あなたの通知 URL と戻り URL の両方が異なります。返品URLは、支払いが成功した後、顧客に返品情報を伝えます。ちなみに、通知 URL は、顧客の購入の完全なトランザクションの詳細を取得するためのものであり、顧客がアクセスすることはできません。これは、データベースまたはストレージの目的のためです。

于 2013-05-21T14:09:56.740 に答える