これは次の質問に対するフォローアップの質問です:PHP: PayPal チェックアウトを開始する簡単な方法はありますか?
私の問題は、戻り URL を指定していることです。しかし、PayPal で支払いを済ませた後、次のような画面が表示されます。
お支払いが完了しました。 XXXX、お支払いが完了しました。 このお支払いの取引 ID は XXXXXXXXXXXXX です。
確認メールをお送りします[メールアドレス]この取引は明細書にPAYPALとして表示されます。
Go to PayPal account overview
この画面を表示せずに、戻り URL に直接移動する必要があります。次の設定があります。
- 「戻り値」変数を設定する
- 「rm」変数を2に設定します(ガイドによると = "購入者のブラウザはPOSTメソッドを使用して戻りURLにリダイレクトされ、すべての支払い変数が含まれます。)
実際、これが私のフォーム全体です:
<form method="post" action="https://www.sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_xclick" name="cmd">
<input type="hidden" value="[email protected]" name="business">
<!-- <input type="hidden" name="undefined_quantity" value="1" /> -->
<input type="hidden" value="Order at The Greek Merchant:<Br />Goldfish Flock BLG<br />" name="item_name">
<input type="hidden" value="NA" name="item_number">
<input type="hidden" value="22.16" name="amount">
<input type="hidden" value="5.17" name="shipping">
<input type="hidden" value="0" name="discount_amount">
<input type="hidden" value="0" name="no_shipping">
<input type="hidden" value="No comments" name="cn">
<input type="hidden" value="USD" name="currency_code">
<input type="hidden" value="http://XXX/XXX/XXX/paypal/return" name="return">
<input type="hidden" value="2" name="rm">
<input type="hidden" value="11255XXX" name="invoice">
<input type="hidden" value="US" name="lc">
<input type="hidden" value="PP-BuyNowBF" name="bn">
<input type="submit" value="Place Order!" name="finalizeOrder" id="finalizeOrder" class="submitButton">
</form>
自動的に元に戻すにはどうしたらよいか、何かアイデアはありますか? あるいは、支払いの結果を自分の Web サイトに戻し、データベースを更新するにはどうすればよいでしょうか? IPN とは何ですか?
ベストアンサー1
PayPal アカウントで自動返却を有効にする必要があります。有効にしないと、return
フィールドは無視されます。
ドキュメントより (2019 年 1 月の新しいレイアウトを反映するように更新):
自動復帰はデフォルトでオフになっています。自動復帰をオンにするには:
- PayPalアカウントにログインしてくださいペイパルまたはhttps://www.sandbox.paypal.com「マイアカウントの概要」ページが表示されます。
- 右上の歯車アイコンをクリックします。プロフィール概要ページが表示されます。
- 左側の列にある「My Selling Settings」リンクをクリックします。
- オンライン販売セクションで、ウェブサイトの設定の行にある更新リンクをクリックします。ウェブサイトの支払い設定ページが表示されます。
- 「Web サイト支払いの自動返却」の下にある「オン」ラジオ ボタンをクリックして、自動返却を有効にします。
- [戻り URL] フィールドに、支払者が支払いを完了した後にリダイレクトする URL を入力します。注意: PayPal は入力した戻り URL をチェックします。URL が適切にフォーマットされていないか検証できない場合、PayPal は自動戻りを有効にしません。
- ページの一番下までスクロールし、「保存」ボタンをクリックします。
IPN は即時支払い通知です。自動返却よりも信頼性が高く、役立つ情報が得られます。
IPN のドキュメントはここにあります:https://www.x.com/sites/default/files/ipnguide.pdf
IPN のオンライン ドキュメント:詳しくはこちら
一般的な手順としては、リクエストとともにパラメータを渡しnotify_url
、IPN 通知を処理および検証するページを設定すると、PayPal はそのページにリクエストを送信して、支払い/返金などが完了したときに通知します。その後、その IPN ハンドラ ページは、データベースを更新して注文が支払い済みとしてマークするための適切な場所になります。