即時支払い通知(IPN)

即時支払い通知を利用すると、PayPal支払いをウェブサイトのバックエンド処理に実装できるため、受け取ったPayPal支払いの通知と認証を即座に行うことができます。

しくみ

お客さまに対して支払いがあった場合、または支払いの取り消しや払い戻しがあった場合、指定された URL のサーバーに PayPal から通知が投稿されます。この通知には、お客さまの顧客のあらゆる支払い情報(顧客名や決済金額など)が記載されているほか、暗号化コードも埋め込まれています。サーバーが通知を受信すると、暗号化されたコードを含む情報を PayPal のセキュアな URL に送信します。PayPal は取引を認証してから、その確認をサーバーに送出します。

注: 即時支払い通知の利用を開始するには、ご自分の個人設定から、通知の受け取り先 URL を入力してください。

即時支払い通知の利用を開始すると、支払いを受け取るたびにサーバーに通知が送信されます。通知の FORM 変数については、即時支払い通知(IPN)マニュアルをお読みください。

PayPal から IPN を受け取ったら、商品を発送する前に必ず通知の確認(以下で説明)を行ってください。記載されている情報を照合することで、正当な取引であることを確認できます。

通知の確認

ご自分の PayPal アカウントに支払いがあったことを確認するには、「receiver_email」として使用するメールアドレスが PayPal アカウントに登録され、確認済みであることを必ずご確認ください。

サーバーが即時支払い通知を受け取ったら、PayPal に対して HTTP POST を実行して確認する必要があります。この POST はhttps://www.paypal.com/cgi-bin/webscr に送信してください。

また、変数「cmd」と値「_notify-validate」(例えば、cmd=_notify-validate)を POST の文字列に付加する必要があります。

PayPal は応答の本文で、「VERIFIED」または「INVALID」を返します。「VERIFIED」の応答を受け取った場合、商品を発送する前に次のいくつかのチェックを行う必要があります。

  • 支払いのステータスが「Pending(未決済)」や「Failed(失敗)」の場合にも IPN は送信されますので、「payment_status」が「Completed(完了)」であることを確認します
  • すでに完了した取引の悪用を防止するため、「txn_id」が重複していないことを確認します
  • 不正アカウントに支払いされないよう、「receiver_email」がお客さまの PayPal アカウントに登録されたメールアドレスであることを確認します
  • 価格が変更されていないことを確認するために、商品番号や価格など、他の取引の詳細をチェックします

上記のチェックが完了したら、データベースで IPN データを更新し、購入処理を進めてください。

「INVALID」(無効)通知を受信した場合、不審な取引として調査する必要があります。

IPN変数

即時支払い通知(IPN)を利用する際の詳細な手順とIPN変数の一覧については、ウェブ ペイメント スタンダード インテグレーションガイドを参照してください。

PayPal のマニュアルを読む際には、Adobe Acrobatが必要です。

購読料と定期支払いに関するその他の IPN 変数を参照してください。