定期支払い(エクスプレスチェックアウト)を使用していて、IPNリスナーがメッセージを受信しています。
すべて正常に実行されており、いくつかのコマンド、応答、および検証を確認しました。
しかし、IPN-Simulatorの「トランザクションタイプ」セレクターにオプションがないため、定期支払いでIPNをテストできません。
Recurring
Payments IPNコマンドを受け取るにはどうすればよいですか?
残念ながら、IPNシミュレーターには、お見せしたように定期的な支払いは含まれていません。実際のプロファイルをセットアップしてサンドボックスでテストする必要があります。または、独自のシミュレーターをセットアップすることもできます。
アクションをIPNURLに設定して基本的なHTMLフォームを作成し、特定のIPNから取得する予定の名前/値を使用して非表示フィールドをフォームに追加するだけです。このようにして、ページをブラウザにロードし、直接投稿して、画面に結果を表示できます。これは、エラーのトラブルシューティングにも役立ちます。
この方法でテストする場合、元のデータはPaypalからのものではないため、検証されないことに注意してください。コードロジックがそれに応じてそれを処理することを確認する必要があります。
定期支払いからのIPNのサンプルを次に示します。
作成されたプロファイル
Array
(
[payment_cycle] => Monthly
[txn_type] => recurring_payment_profile_created
[last_name] => Angell
[next_payment_date] => 03:00:00 Sep 12, 2013 PDT
[residence_country] => US
[initial_payment_amount] => 0.00
[currency_code] => USD
[time_created] => 20:17:10 Sep 12, 2013 PDT
[verify_sign] => ASsJ54wcfEJZVuwOMU8vBNHZb1TpAf7F4PMLvKL2uni1hb11jdOgdd2V
[period_type] => Regular
[payer_status] => verified
[test_ipn] => 1
[tax] => 0.00
[payer_email] => [email protected]
[first_name] => Drew
[receiver_email] => [email protected]
[payer_id] => E7BTGVXBFSUAU
[product_type] => 1
[payer_business_name] => Drew Angell's Test Store
[shipping] => 0.00
[amount_per_cycle] => 30.00
[profile_status] => Active
[charset] => windows-1252
[notify_version] => 3.7
[amount] => 30.00
[outstanding_balance] => 0.00
[recurring_payment_id] => I-VYR2VN3XPVW4
[product_name] => The HALO Foundation Donation
[ipn_track_id] => 348867a2b7815
)
支払い済み
Array
(
[mc_gross] => 10.00
[period_type] => Regular
[outstanding_balance] => 0.00
[next_payment_date] => 02:00:00 Dec 16, 2013 PST
[protection_eligibility] => Ineligible
[payment_cycle] => every 3 Months
[tax] => 0.00
[payer_id] => 3HMDJA96TEQN4
[payment_date] => 05:19:33 Sep 16, 2013 PDT
[payment_status] => Completed
[product_name] => platypu subscription
[charset] => windows-1252
[recurring_payment_id] => I-R52C41AGNEAP
[first_name] => test
[mc_fee] => 0.64
[notify_version] => 3.7
[amount_per_cycle] => 10.00
[payer_status] => unverified
[currency_code] => USD
[business] => [email protected]
[verify_sign] => A4QWarlQUU0cupDGeAi-McuvfslGA7lrbrWV735PGPsr3OKdTRFyJtOq
[payer_email] => [email protected]
[initial_payment_amount] => 0.00
[profile_status] => Active
[amount] => 10.00
[txn_id] => 34Y69196BK064583G
[payment_type] => instant
[last_name] => test
[receiver_email] => [email protected]
[payment_fee] => 0.64
[receiver_id] => ATSCG2QMC9KAU
[txn_type] => recurring_payment
[mc_currency] => USD
[residence_country] => US
[test_ipn] => 1
[receipt_id] => 1660-1430-7506-9911
[transaction_subject] =>
[payment_gross] => 10.00
[shipping] => 0.00
[product_type] => 1
[time_created] => 07:54:24 Sep 05, 2013 PDT
[ipn_track_id] => efd4ee6ea4474
)
支払いをスキップ
Array
(
[payment_cycle] => Monthly
[txn_type] => recurring_payment_skipped
[last_name] => bitch
[next_payment_date] => 03:00:00 Sep 21, 2013 PDT
[residence_country] => US
[initial_payment_amount] => 0.00
[currency_code] => USD
[time_created] => 19:42:33 Jan 11, 2013 PST
[verify_sign] => AcyQRlWufyrh0B6-n5swEgNB9oNJAkMm65cAu2bQLTevdnT2JnuIyDQO
[period_type] => Regular
[payer_status] => unverified
[test_ipn] => 1
[tax] => 0.00
[payer_email] => [email protected]
[first_name] => working
[receiver_email] => [email protected]
[payer_id] => 4ATNY663RDKJA
[product_type] => 1
[shipping] => 0.00
[amount_per_cycle] => 10.00
[profile_status] => Active
[charset] => windows-1252
[notify_version] => 3.7
[amount] => 10.00
[outstanding_balance] => 60.00
[recurring_payment_id] => I-LH2MJXG27TR6
[product_name] => Angell EYE Web Hosting
[ipn_track_id] => e3a52d6772d28
)
支払いに失敗しました
Array
(
[payment_cycle] => every 4 Weeks
[txn_type] => recurring_payment_failed
[last_name] => Tester
[next_payment_date] => 03:00:00 Oct 03, 2013 PDT
[residence_country] => US
[initial_payment_amount] => 0
[currency_code] => JPY
[time_created] => 05:14:37 Aug 01, 2012 PDT
[verify_sign] => AOTn5qT2D05NGLBeQowuGwhI5kTFAIPV01VWay1FayueRmXhAYd2KLZp
[period_type] => Regular
[payer_status] => unverified
[test_ipn] => 1
[tax] => 0
[payer_email] => [email protected]
[first_name] => Ecaf
[receiver_email] => [email protected]
[payer_id] => VCLJR9E79V4KJ
[product_type] => 1
[shipping] => 0
[amount_per_cycle] => 1
[profile_status] => Active
[charset] => windows-1252
[notify_version] => 3.7
[amount] => 1
[outstanding_balance] => 1
[recurring_payment_id] => I-P90BX92X15DR
[product_name] => Welcome to the world of shopping where you get everything
[ipn_track_id] => ab99ea6823e24
)
プロファイルが一時停止されました
Array
(
[payment_cycle] => Monthly
[txn_type] => recurring_payment_suspended_due_to_max_failed_payment
[last_name] => Lang
[next_payment_date] => N/A
[residence_country] => US
[initial_payment_amount] => 4.90
[currency_code] => USD
[time_created] => 13:45:44 Nov 04, 2010 PDT
[verify_sign] => A65EYvoNuupMDbNU-2RPi609XJ7LAQ8CzxOV03bR4.O-nKSYG9LjBf10
[period_type] => Regular
[payer_status] => unverified
[test_ipn] => 1
[tax] => 0.00
[payer_email] => [email protected]
[first_name] => Corey
[receiver_email] => [email protected]
[payer_id] => HKHX3D32P9DXG
[product_type] => 1
[shipping] => 0.00
[amount_per_cycle] => 29.95
[profile_status] => Suspended
[charset] => windows-1252
[notify_version] => 3.7
[amount] => 29.95
[outstanding_balance] => 149.75
[recurring_payment_id] => I-Y0E6UC684RS4
[product_name] => Achieve Formulas 30 day supply, monthly.
[ipn_track_id] => 95c39c8a4b39d
)
プロファイルがキャンセルされました
Array
(
[payment_cycle] => Monthly
[txn_type] => recurring_payment_profile_cancel
[last_name] => Testerson
[next_payment_date] => N/A
[residence_country] => US
[initial_payment_amount] => 69.90
[rp_invoice_id] => 4603
[currency_code] => USD
[time_created] => 09:40:52 Feb 11, 2013 PST
[verify_sign] => AGiC06LknLf7LnPNSt03A0q0ajKiAZt35jsIvkcPn5dU7GtRl-ITAf5Q
[period_type] => Regular
[payer_status] => verified
[tax] => 0.00
[payer_email] => [email protected]
[first_name] => Tester
[receiver_email] => [email protected]
[payer_id] => Q28888N
[product_type] => 1
[shipping] => 0.00
[amount_per_cycle] => 1.95
[profile_status] => Cancelled
[charset] => windows-1252
[notify_version] => 3.7
[amount] => 1.95
[outstanding_balance] => 0.00
[recurring_payment_id] => I-553Y5PRWJ29F
[product_name] => USBSwiper Monthly Subscription
[ipn_track_id] => 5ecdc90112398
)
定期支払いの有効期限が切れています
Array
(
[payment_cycle] => Monthly
[txn_type] => recurring_payment_expired
[last_name] => Testerson
[next_payment_date] => N/A
[residence_country] => US
[initial_payment_amount] => 0.00
[rp_invoice_id] => 1580
[currency_code] => USD
[time_created] => 09:42:46 Jan 12, 2011 PST
[verify_sign] => AbBIww12EQnvrHwYmd1wb98zYz53APIJHOa.GTV4C9Ef0HVE1FWBtxMP
[period_type] => Regular
[payer_status] => unverified
[tax] => 0.00
[first_name] => Tester
[receiver_email] => [email protected]
[payer_id] => R7J55555MN
[product_type] => 1
[shipping] => 0.00
[amount_per_cycle] => 1.00
[profile_status] => Cancelled
[charset] => windows-1252
[notify_version] => 3.0
[amount] => 1.00
[outstanding_balance] => 0.00
[recurring_payment_id] => I-M0555555RY
[product_name] => USBSwiper Rental Program
)
@Andrew Angellの答えは最高です。開発者がこれらの例を、過去にコピーしてすぐに使用できる準備ができたhtmlフォームとして用意しておくと、時間を節約できるかもしれないと思いました。だからここにあります:
<!-- Profile Created -->
<form target="_new" method="post" action="http://www.yourdomain.com/youripnhandler.php">
<input type="hidden" name="verify_sign" value="ASsJ54wcfEJZVuwOMU8vBNHZb1TpAf7F4PMLvKL2uni1hb11jdOgdd2V" />
<input type="hidden" name="period_type" value="Regular" />
<input type="hidden" name="payer_status" value="verified" />
<input type="hidden" name="test_ipn" value="1" />
<input type="hidden" name="tax" value="0.00" />
<input type="hidden" name="payer_email" value="[email protected]" />
<input type="hidden" name="first_name" value="Drew" />
<input type="hidden" name="receiver_email" value="[email protected]" />
<input type="hidden" name="payer_id" value="E7BTGVXBFSUAU" />
<input type="hidden" name="product_type" value="1" />
<input type="hidden" name="payer_business_name" value="Drew Angell's Test Store" />
<input type="hidden" name="shipping" value="0.00" />
<input type="hidden" name="amount_per_cycle" value="30.00" />
<input type="hidden" name="profile_status" value="Active" />
<input type="hidden" name="charset" value="windows-1252" />
<input type="hidden" name="notify_version" value="3.7" />
<input type="hidden" name="amount" value="30.00" />
<input type="hidden" name="outstanding_balance" value="0.00" />
<input type="hidden" name="recurring_payment_id" value="I-VYR2VN3XPVW4" />
<input type="hidden" name="product_name" value="The HALO Foundation Donation" />
<input type="hidden" name="ipn_track_id" value="348867a2b7815" />
<input type="submit" value="Send Profile Created"/> </form>
<!-- Payment Made -->
<form target="_new" method="post" action="http://www.yourdomain.com/youripnhandler.php">
<input type="hidden" name="mc_gross" value="10.00" />
<input type="hidden" name="period_type" value=" Regular" />
<input type="hidden" name="outstanding_balance" value="0.00" />
<input type="hidden" name="next_payment_date" value="02:00:00 Dec 16, 2013 PST" />
<input type="hidden" name="protection_eligibility" value="Ineligible" />
<input type="hidden" name="payment_cycle" value="every 3 Months" />
<input type="hidden" name="tax" value="0.00" />
<input type="hidden" name="payer_id" value="3HMDJA96TEQN4" />
<input type="hidden" name="payment_date" value="05:19:33 Sep 16, 2013 PDT" />
<input type="hidden" name="payment_status" value="Completed" />
<input type="hidden" name="product_name" value="platypu subscription" />
<input type="hidden" name="charset" value="windows-1252" />
<input type="hidden" name="recurring_payment_id" value="I-R52C41AGNEAP" />
<input type="hidden" name="first_name" value="test" />
<input type="hidden" name="mc_fee" value="0.64" />
<input type="hidden" name="notify_version" value="3.7" />
<input type="hidden" name="amount_per_cycle" value="10.00" />
<input type="hidden" name="payer_status" value="unverified" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="business" value="[email protected]" />
<input type="hidden" name="verify_sign" value="A4QWarlQUU0cupDGeAi-McuvfslGA7lrbrWV735PGPsr3OKdTRFyJtOq" />
<input type="hidden" name="payer_email" value="[email protected]" />
<input type="hidden" name="initial_payment_amount" value="0.00" />
<input type="hidden" name="profile_status" value="Active" />
<input type="hidden" name="amount" value="10.00" />
<input type="hidden" name="txn_id" value="34Y69196BK064583G" />
<input type="hidden" name="payment_type" value="instant" />
<input type="hidden" name="last_name" value="test" />
<input type="hidden" name="receiver_email" value="[email protected]" />
<input type="hidden" name="payment_fee" value="0.64" />
<input type="hidden" name="receiver_id" value="ATSCG2QMC9KAU" />
<input type="hidden" name="txn_type" value="recurring_payment" />
<input type="hidden" name="mc_currency" value="USD" />
<input type="hidden" name="residence_country" value="US" />
<input type="hidden" name="test_ipn" value="1" />
<input type="hidden" name="receipt_id" value="1660-1430-7506-9911" />
<input type="hidden" name="transaction_subject" value="" />
<input type="hidden" name="payment_gross" value="10.00" />
<input type="hidden" name="shipping" value="0.00" />
<input type="hidden" name="product_type" value="1" />
<input type="hidden" name="time_created" value="07:54:24 Sep 05, 2013 PDT" />
<input type="hidden" name="ipn_track_id" value="efd4ee6ea4474" />
<input type="submit" value="Send Payment Made"/> </form>
<!-- Payment Skipped -->
<form target="_new" method="post" action="http://www.yourdomain.com/youripnhandler.php">
<input type="hidden" name="payment_cycle" value="Monthly" />
<input type="hidden" name="txn_type" value="recurring_payment_skipped" />
<input type="hidden" name="last_name" value="bitch" />
<input type="hidden" name="next_payment_date" value="03:00:00 Sep 21, 2013 PDT" />
<input type="hidden" name="residence_country" value="US" />
<input type="hidden" name="initial_payment_amount" value="0.00" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="time_created" value="19:42:33 Jan 11, 2013 PST" />
<input type="hidden" name="verify_sign" value="AcyQRlWufyrh0B6-n5swEgNB9oNJAkMm65cAu2bQLTevdnT2JnuIyDQO" />
<input type="hidden" name="period_type" value=" Regular" />
<input type="hidden" name="payer_status" value="unverified" />
<input type="hidden" name="test_ipn" value="1" />
<input type="hidden" name="tax" value="0.00" />
<input type="hidden" name="payer_email" value="[email protected]" />
<input type="hidden" name="first_name" value="working" />
<input type="hidden" name="receiver_email" value="[email protected]" />
<input type="hidden" name="payer_id" value="4ATNY663RDKJA" />
<input type="hidden" name="product_type" value="1" />
<input type="hidden" name="shipping" value="0.00" />
<input type="hidden" name="amount_per_cycle" value="10.00" />
<input type="hidden" name="profile_status" value="Active" />
<input type="hidden" name="charset" value="windows-1252" />
<input type="hidden" name="notify_version" value="3.7" />
<input type="hidden" name="amount" value="10.00" />
<input type="hidden" name="outstanding_balance" value="60.00" />
<input type="hidden" name="recurring_payment_id" value="I-LH2MJXG27TR6" />
<input type="hidden" name="product_name" value="Angell EYE Web Hosting" />
<input type="hidden" name="ipn_track_id" value="e3a52d6772d28" />
<input type="submit" value="Send Payment Skipped"/> </form>
<!-- Payment Failed -->
<form target="_new" method="post" action="http://www.yourdomain.com/youripnhandler.php">
<input type="hidden" name="payment_cycle" value="every 4 Weeks" />
<input type="hidden" name="txn_type" value="recurring_payment_failed" />
<input type="hidden" name="last_name" value="Tester" />
<input type="hidden" name="next_payment_date" value="03:00:00 Oct 03, 2013 PDT" />
<input type="hidden" name="residence_country" value="US" />
<input type="hidden" name="initial_payment_amount" value="0" />
<input type="hidden" name="currency_code" value="JPY" />
<input type="hidden" name="time_created" value="05:14:37 Aug 01, 2012 PDT" />
<input type="hidden" name="verify_sign" value="AOTn5qT2D05NGLBeQowuGwhI5kTFAIPV01VWay1FayueRmXhAYd2KLZp" />
<input type="hidden" name="period_type" value=" Regular" />
<input type="hidden" name="payer_status" value="unverified" />
<input type="hidden" name="test_ipn" value="1" />
<input type="hidden" name="tax" value="0" />
<input type="hidden" name="payer_email" value="[email protected]" />
<input type="hidden" name="first_name" value="Ecaf" />
<input type="hidden" name="receiver_email" value="[email protected]" />
<input type="hidden" name="payer_id" value="VCLJR9E79V4KJ" />
<input type="hidden" name="product_type" value="1" />
<input type="hidden" name="shipping" value="0" />
<input type="hidden" name="amount_per_cycle" value="1" />
<input type="hidden" name="profile_status" value="Active" />
<input type="hidden" name="charset" value="windows-1252" />
<input type="hidden" name="notify_version" value="3.7" />
<input type="hidden" name="amount" value="1" />
<input type="hidden" name="outstanding_balance" value="1" />
<input type="hidden" name="recurring_payment_id" value="I-P90BX92X15DR" />
<input type="hidden" name="product_name" value="Welcome to the world of shopping where you get everything" />
<input type="hidden" name="ipn_track_id" value="ab99ea6823e24" />
<input type="submit" value="Send Payment Failed"/> </form>
<!-- Profile Suspended -->
<form target="_new" method="post" action="http://www.yourdomain.com/youripnhandler.php">
<input type="hidden" name="payment_cycle" value="Monthly" />
<input type="hidden" name="txn_type" value="recurring_payment_suspended_due_to_max_failed_payment" />
<input type="hidden" name="last_name" value="Lang" />
<input type="hidden" name="next_payment_date" value="N/A" />
<input type="hidden" name="residence_country" value="US" />
<input type="hidden" name="initial_payment_amount" value="4.90" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="time_created" value="13:45:44 Nov 04, 2010 PDT" />
<input type="hidden" name="verify_sign" value="A65EYvoNuupMDbNU-2RPi609XJ7LAQ8CzxOV03bR4.O-nKSYG9LjBf10" />
<input type="hidden" name="period_type" value=" Regular" />
<input type="hidden" name="payer_status" value="unverified" />
<input type="hidden" name="test_ipn" value="1" />
<input type="hidden" name="tax" value="0.00" />
<input type="hidden" name="payer_email" value="[email protected]" />
<input type="hidden" name="first_name" value="Corey" />
<input type="hidden" name="receiver_email" value="[email protected]" />
<input type="hidden" name="payer_id" value="HKHX3D32P9DXG" />
<input type="hidden" name="product_type" value="1" />
<input type="hidden" name="shipping" value="0.00" />
<input type="hidden" name="amount_per_cycle" value="29.95" />
<input type="hidden" name="profile_status" value="Suspended" />
<input type="hidden" name="charset" value="windows-1252" />
<input type="hidden" name="notify_version" value="3.7" />
<input type="hidden" name="amount" value="29.95" />
<input type="hidden" name="outstanding_balance" value="149.75" />
<input type="hidden" name="recurring_payment_id" value="I-Y0E6UC684RS4" />
<input type="hidden" name="product_name" value="Achieve Formulas 30 day supply, monthly." />
<input type="hidden" name="ipn_track_id" value="95c39c8a4b39d" />
<input type="submit" value="Send Profile Suspended"/> </form>
<!-- Profile Canceled -->
<form target="_new" method="post" action="http://www.yourdomain.com/youripnhandler.php">
<input type="hidden" name="payment_cycle" value="Monthly" />
<input type="hidden" name="txn_type" value="recurring_payment_profile_cancel" />
<input type="hidden" name="last_name" value="Testerson" />
<input type="hidden" name="next_payment_date" value="N/A" />
<input type="hidden" name="residence_country" value="US" />
<input type="hidden" name="initial_payment_amount" value="69.90" />
<input type="hidden" name="rp_invoice_id" value="4603" />
<input type="hidden" name="currency_code" value="USD" />
<input type="hidden" name="time_created" value="09:40:52 Feb 11, 2013 PST" />
<input type="hidden" name="verify_sign" value="AGiC06LknLf7LnPNSt03A0q0ajKiAZt35jsIvkcPn5dU7GtRl-ITAf5Q" />
<input type="hidden" name="period_type" value=" Regular" />
<input type="hidden" name="payer_status" value="verified" />
<input type="hidden" name="tax" value="0.00" />
<input type="hidden" name="payer_email" value="[email protected]" />
<input type="hidden" name="first_name" value="Tester" />
<input type="hidden" name="receiver_email" value="[email protected]" />
<input type="hidden" name="payer_id" value="Q28888N" />
<input type="hidden" name="product_type" value="1" />
<input type="hidden" name="shipping" value="0.00" />
<input type="hidden" name="amount_per_cycle" value="1.95" />
<input type="hidden" name="profile_status" value="Cancelled" />
<input type="hidden" name="charset" value="windows-1252" />
<input type="hidden" name="notify_version" value="3.7" />
<input type="hidden" name="outstanding_balance" value="0.00" />
<input type="hidden" name="recurring_payment_id" value="I-553Y5PRWJ29F" />
<input type="hidden" name="product_name" value="USBSwiper Monthly Subscription" />
<input type="hidden" name="ipn_track_id" value="5ecdc90112398" />
<input type="submit" value="Send Profile Canceled"/> </form>
<!-- Recurring Payment Expired -->
<form target="_new" method="post" action="http://www.yourdomain.com/youripnhandler.php">
<input type="hidden" name="payment_cycle" value="Monthly" />
<input type="hidden" name="txn_type" value="recurring_payment_expired" />
<input type="hidden" name="last_name" value="Testerson" />
<input type="hidden" name="next_payment_date" value="N/A" />
<input type="hidden" name="residence_country" value="US" />
<input type="hidden" name="initial_payment_amount" value="0.00"/>
<input type="hidden" name="rp_invoice_id" value="1580"/>
<input type="hidden" name="currency_code" value="USD"/>
<input type="hidden" name="time_created" value="09:42:46 Jan 12, 2011 PST"/>
<input type="hidden" name="verify_sign" value="AbBIww12EQnvrHwYmd1wb98zYz53APIJHOa.GTV4C9Ef0HVE1FWBtxMP"/>
<input type="hidden" name="period_type" value=" Regular"/>
<input type="hidden" name="payer_status" value="unverified"/>
<input type="hidden" name="tax" value="0.00"/>
<input type="hidden" name="first_name" value="Tester" />
<input type="hidden" name="receiver_email" value="[email protected]" />
<input type="hidden" name="payer_id" value="R7J55555MN" />
<input type="hidden" name="product_type" value="1" />
<input type="hidden" name="shipping" value="0.00" />
<input type="hidden" name="amount_per_cycle" value="1.00" />
<input type="hidden" name="profile_status" value="Cancelled" />
<input type="hidden" name="charset" value="windows-1252" />
<input type="hidden" name="notify_version" value="3.0" />
<input type="hidden" name="amount" value="1.00" />
<input type="hidden" name="outstanding_balance" value="0.00" />
<input type="hidden" name="recurring_payment_id" value="I-M0555555RY" />
<input type="hidden" name="product_name" value="USBSwiper Rental Program" />
<input type="submit" value="Send Recurring Payment Expired"/> </form>