顧客が支払ったことを確認するために PayPal からフィードバックを得る最良の方法は何ですか? 答えは IPN のようです。もしそうなら、私のフォローアップの質問は、特定のボタンに対してのみ IPN を有効にできますか? いかなる種類の IPN 統合も必要としない購入について、PayPal が私の IPN リスナーに ping を送信したくありません。
私はアジャイルと YAGNI が大好きなので、不必要なことはしたくありません。
顧客が支払ったことを確認するために PayPal からフィードバックを得る最良の方法は何ですか? 答えは IPN のようです。もしそうなら、私のフォローアップの質問は、特定のボタンに対してのみ IPN を有効にできますか? いかなる種類の IPN 統合も必要としない購入について、PayPal が私の IPN リスナーに ping を送信したくありません。
私はアジャイルと YAGNI が大好きなので、不必要なことはしたくありません。
PayPalが提供しているIPNドキュメントを読む必要があります。IPNを使用する簡単な方法は、invoice
追跡するトランザクションのIDを取得することです。IPNリスナーページで取得ipn_data
し、フィールドの1つはinvoice
です。このIDを使用して、独自のトランザクションデータベースからデータを取得し、PayPalでの支払いステータスを反映するようにステータスを変更する必要があります。
私のコードでは、通常、ステータスをに設定しunpaid
、ユーザーに支払いを行うようにペイパルに指示し、IPNリスナーではステータスをに設定しますpaid
。
PayPalはサンプルコードを提供しているので、すぐに始めることができます。このページで他のPayPalドキュメントも見ることができます。
ボタンのパラメータに、使用するIPNリスナーを簡単に含めることができます。
PayPalのWebサイトにデフォルトの場所が設定されていない場合、IPNリスナーは、1つの設定があるボタンに対してのみpingを送信します。
問題のPayPalフォーム変数は「notify_url」です。
これはサブスクリプションボタンの例ですが、他のものと同じ変数です。
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="image" src="https://www.paypal.com/en_GB/i/btn/x-click-butcc-subscribe.gif"
border="0" name="submit" alt="PayPal - The safer, easier way to pay online."
onclick="_gaq.push(['_trackEvent', 'Click', 'PayPalMonthSub', 'SubscribePage']);" />
<img alt="" border="0" src="https://www.paypal.com/en_GB/i/scr/pixel.gif" width="1"
height="1" />
<input type="hidden" name="cmd" value="_xclick-subscriptions" />
<input type="hidden" name="business" value="paypal@yourdomain.com" />
<input type="hidden" name="item_name" value=" Monthly Subscription" />
<input type="hidden" name="item_number" value="1" />
<input type="hidden" name="no_shipping" value="1" />
<input type="hidden" name="no_note" value="1" />
<input type="hidden" name="currency_code" value="GBP" />
<input type="hidden" name="lc" value="GB" />
<input type="hidden" name="bn" value="PP-SubscriptionsBF" />
<input type="hidden" name="a3" value="4.99" />
<input type="hidden" name="p3" value="1" />
<input type="hidden" name="t3" value="M" />
<input type="hidden" name="src" value="1" />
<input type="hidden" name="sra" value="1" />
<input type="hidden" name="return" value="http://yourdomain.com/subscribe/thanks.aspx" />
<input type="hidden" name="rm" value="2" />
<input type="hidden" name="cancel_return" value="http://yourdomain.com/subscribe" />
<input type="hidden" name="notify_url" value="/http://yourdomain.com/IPN.aspx" />
</form>
アカウントにデフォルトの通知URLを設定する必要がある場合は、それを必要としないボタンに別のハンドラーを含めることによってのみ、ハンドラーのpingを停止できます。PayPalがハンドラーからHTTP200を取得しない場合は、試行を続けますが、存在しないURIに何も設定することはお勧めしません。