1. ホーム
  2. php

[解決済み] Paypalのnotify_urlとreturn_urlです。PHPを使用してIPNなしで変数を受信する

2022-02-24 19:59:40

質問

Paypalへの簡単な支払いオプションを設定しようとしていますが、returnとnotifyのURLでトラブルや混乱が発生しています。私はphpの初心者で、以前はaspでこれを達成したのですが、今になって分からなくなってしまいました。

私の基本的なPayPalフォームです。

<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 protected]">
 <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に投稿され、その結果に応じて戻り、失敗またはキャンセルされた場合はpaypal-notcompleted.phpに移動します。

成功した場合、paypal-completed.phpに移動します。私はIPNをセットアップしていません。私がしたいのは、paypalが私に戻ってポストする変数のいくつかを取得し、単純な挿入クエリを実行し、顧客に確認メッセージのいくつかの詳細を表示することです。

notify_urlとreturn_urlを同じページにしていいのでしょうか?

なぜpaypalは期待される完全なものを掲示しないのか(ここに見られるように。 Paypalの通知先URL ) ページに戻りますか?

XMLとか関係あるのはわかるのですが、paypalが送り返した変数を$_GETすればいいと思っただけなのです。誰かがこの方法でそれをしたことがありますか、彼らは私が間違っている場所を教えてもらえますか?

解決方法は?

詳細情報を戻り先URLに戻すには、以下のようにします。 PDT . とよく似ています。 IPN ただし、これは戻り先URLで使用するためのものであり、一方 アイピーエヌ は、サードパーティの IPN リスナースクリプトをサーバーに設置します。

PDT は、単に返送先 URL のページでユーザーに決済を表示する分には問題ありませんが、決済後の処理を PDT (例: データベース更新、領収書メールの送信など) PayPalアカウントでAuto-Returnを有効にしていても、ユーザーがこのページに戻ってくる保証はないからです。

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

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

そうしないと、ユーザーがサイトに戻ったときと、PayPal IPNのPOSTから戻ってきたときに、同じコードが2回実行されることになります。