2

顧客が支払ったことを確認するために PayPal からフィードバックを得る最良の方法は何ですか? 答えは IPN のようです。もしそうなら、私のフォローアップの質問は、特定のボタンに対してのみ IPN を有効にできますか? いかなる種類の IPN 統合も必要としない購入について、PayPal が私の IPN リスナーに ping を送信したくありません。

私はアジャイルと YAGNI が大好きなので、不必要なことはしたくありません。

4

2 に答える 2

2

PayPalが提供しているIPNドキュメントを読む必要があります。IPNを使用する簡単な方法は、invoice追跡するトランザクションのIDを取得することです。IPNリスナーページで取得ipn_dataし、フィールドの1つはinvoiceです。このIDを使用して、独自のトランザクションデータベースからデータを取得し、PayPalでの支払いステータスを反映するようにステータスを変更する必要があります。

私のコードでは、通常、ステータスをに設定しunpaid、ユーザーに支払いを行うようにペイパルに指示し、IPNリスナーではステータスをに設定しますpaid

PayPalはサンプルコードを提供しているので、すぐに始めることができます。このページで他のPayPalドキュメントも見ることができます。

于 2010-03-13T09:57:21.933 に答える
1

ボタンのパラメータに、使用する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に何も設定することはお勧めしません。

于 2013-01-15T17:16:54.187 に答える