我正在处理定期付款(快速结帐),我有一个IPN监听器接收消息。
一切正常,我检查了几个命令,响应和验证。
但我无法使用定期付款测试IPN,因为我在IPN-Simulator的“交易类型”选择器中没有选项:
如何接收Recurring
付款IPN命令?
答案 0 :(得分:56)
不幸的是,IPN模拟器不包括您所显示的定期付款。您需要设置真实的配置文件并在沙箱中测试它们,或者您可以设置自己的模拟器。
只需创建一个基本HTML表单,并将操作设置为您的IPN URL,然后将隐藏字段添加到表单中,其中包含您希望从任何给定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] => sandbo_1204199080_biz@angelleye.com
[first_name] => Drew
[receiver_email] => sandbo_1215254764_biz@angelleye.com
[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] => sandbo_1215254764_biz@angelleye.com
[verify_sign] => A4QWarlQUU0cupDGeAi-McuvfslGA7lrbrWV735PGPsr3OKdTRFyJtOq
[payer_email] => test@domain.com
[initial_payment_amount] => 0.00
[profile_status] => Active
[amount] => 10.00
[txn_id] => 34Y69196BK064583G
[payment_type] => instant
[last_name] => test
[receiver_email] => sandbo_1215254764_biz@angelleye.com
[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] => tester@hey.com
[first_name] => working
[receiver_email] => sandbo_1215254764_biz@angelleye.com
[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] => prachi@signyit.com
[first_name] => Ecaf
[receiver_email] => sandbo_1215254764_biz@angelleye.com
[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] => corey@angelleye.com
[first_name] => Corey
[receiver_email] => sandbo_1215254764_biz@angelleye.com
[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] => payer@email.com
[first_name] => Tester
[receiver_email] => sandbox@domain.com
[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] => payments@domain.com
[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
)
答案 1 :(得分:6)
<!-- 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="sandbo_1204199080_biz@angelleye.com" />
<input type="hidden" name="first_name" value="Drew" />
<input type="hidden" name="receiver_email" value="sandbo_1215254764_biz@angelleye.com" />
<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="sandbo_1215254764_biz@angelleye.com" />
<input type="hidden" name="verify_sign" value="A4QWarlQUU0cupDGeAi-McuvfslGA7lrbrWV735PGPsr3OKdTRFyJtOq" />
<input type="hidden" name="payer_email" value="test@domain.com" />
<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="sandbo_1215254764_biz@angelleye.com" />
<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="tester@hey.com" />
<input type="hidden" name="first_name" value="working" />
<input type="hidden" name="receiver_email" value="sandbo_1215254764_biz@angelleye.com" />
<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="prachi@signyit.com" />
<input type="hidden" name="first_name" value="Ecaf" />
<input type="hidden" name="receiver_email" value="sandbo_1215254764_biz@angelleye.com" />
<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="corey@angelleye.com" />
<input type="hidden" name="first_name" value="Corey" />
<input type="hidden" name="receiver_email" value="sandbo_1215254764_biz@angelleye.com" />
<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="payer@email.com" />
<input type="hidden" name="first_name" value="Tester" />
<input type="hidden" name="receiver_email" value="sandbox@domain.com" />
<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="payments@domain.com" />
<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>