从 paypal 中取消订阅会收到什么样的 ipn 响应?
What kind of ipn response is recieved on subscription deactivation from within paypal?
我首先向客户收取即时付款费用,然后创建订阅资料。这是我收到的 ipn。
我猜这是即时支付:
[2016-10-31 16:26:11] local.INFO: IPN RESPONSE:Array
(
[mc_gross] => 9.99
[invoice] => 49
[protection_eligibility] => Ineligible
[item_number1] =>
[payer_id] => FA5XLVU3CLN92
[tax] => 0.00
[payment_date] => 09:26:06 Oct 31, 2016 PDT
[payment_status] => Completed
[charset] => windows-1252
[mc_shipping] => 0.00
[mc_handling] => 0.00
[first_name] => omer
[mc_fee] => 0.59
[notify_version] => 3.8
[custom] =>
[payer_status] => verified
[business] => business@gmail.com
[num_cart_items] => 1
[mc_handling1] => 0.00
[verify_sign] => A8SKEyFJtpw0I2pUVRQ9wRhpVLh9AnPjeq8ltcpWBhIHlTZuf.ak4aa-
[payer_email] => customer@gmail.com
[mc_shipping1] => 0.00
[tax1] => 0.00
[txn_id] => 3J610862594926351
[payment_type] => instant
[last_name] => farooq
[item_name1] => Product 1
[receiver_email] => business@gmail.com
[payment_fee] => 0.59
[quantity1] => 1
[receiver_id] => RSDJM66ZP7LZ8
[txn_type] => cart
[mc_gross_1] => 9.99
[mc_currency] => USD
[residence_country] => US
[test_ipn] => 1
[transaction_subject] => 49
[payment_gross] => 9.99
[ipn_track_id] => af46df962d1bf
[cmd] => _notify-validate
)
而这个应该用于订阅配置文件:
[2016-10-31 16:27:09] local.INFO: IPN RESPONSE:Array
(
[payment_cycle] => every 12 Months
[txn_type] => recurring_payment_profile_created
[last_name] => farooq
[next_payment_date] => 03:00:00 Oct 31, 2016 PDT
[residence_country] => US
[initial_payment_amount] => 0.00
[currency_code] => USD
[time_created] => 09:26:08 Oct 31, 2016 PDT
[verify_sign] => AwD4sJJmdrzDKNGw7KMAMuZSx1AHAJkBGoIT8Zl86XtmqM9xpRo7woGm
[period_type] => Regular
[payer_status] => verified
[test_ipn] => 1
[tax] => 0.00
[payer_email] => customer@gmail.com
[first_name] => omer
[receiver_email] => business@gmail.com
[payer_id] => FA5XLVU3CLN92
[product_type] => 1
[shipping] => 0.00
[amount_per_cycle] => 9.99
[profile_status] => Active
[charset] => windows-1252
[notify_version] => 3.8
[amount] => 9.99
[outstanding_balance] => 0.00
[recurring_payment_id] => I-R159BJH8WJHF
[product_name] => 49
[ipn_track_id] => 45f60995a00
[cmd] => _notify-validate
)
现在我的问题是,如果有人用他的 paypal 帐户停用他的订阅怎么办?显然我认为我不会在下一个计费周期收到 ipn 响应。或者 paypal 是否会回复您说订阅已被停用?
我是否一直在寻找是否在某个账单日期收到了 ipn,如果我没有收到 ipn,我只是假设他们可能已经从 paypal 中停用了订阅。
这是最好的方法吗?如果可能的话,你能解释一下你是如何在你的系统上工作的吗?
我实际上在几年前就此写了一篇文章,解释了可以为订阅生成的所有不同类型的 IPN。如果您想阅读完整答案,我已将其重新发布 on my personal blog,但这是简短的答案:您将获得带有 txn_type=recurring_payment_profile_cancel
的 IPN。这应该在买家取消订阅后立即发生。
现在...如果买家在订阅过程中取消,您将在结算周期结束时获得带有 txn_type=recurring_payment_expired
的第二个 IPN。例如,如果您的订阅每 12 个月计费一次,而买家在 6 个月后取消,您将在他们取消时获得一个带 txn_type=recurring_payment_profile_cancel
的 IPN,另一个带 txn_type=recurring_payment_expired
在 12 个月结束时(例如,当 PayPal 为接下来的 12 个月开具账单时)。这个想法是买家已经支付了 12 个月的费用,即使他们仅在 6 个月后取消了付款。 recurring_payment_expired
IPN 本质上是通知你说 "hey, this person's subscription is up — now you should deactivate whatever product/service you're providing to them".
我首先向客户收取即时付款费用,然后创建订阅资料。这是我收到的 ipn。
我猜这是即时支付:
[2016-10-31 16:26:11] local.INFO: IPN RESPONSE:Array
(
[mc_gross] => 9.99
[invoice] => 49
[protection_eligibility] => Ineligible
[item_number1] =>
[payer_id] => FA5XLVU3CLN92
[tax] => 0.00
[payment_date] => 09:26:06 Oct 31, 2016 PDT
[payment_status] => Completed
[charset] => windows-1252
[mc_shipping] => 0.00
[mc_handling] => 0.00
[first_name] => omer
[mc_fee] => 0.59
[notify_version] => 3.8
[custom] =>
[payer_status] => verified
[business] => business@gmail.com
[num_cart_items] => 1
[mc_handling1] => 0.00
[verify_sign] => A8SKEyFJtpw0I2pUVRQ9wRhpVLh9AnPjeq8ltcpWBhIHlTZuf.ak4aa-
[payer_email] => customer@gmail.com
[mc_shipping1] => 0.00
[tax1] => 0.00
[txn_id] => 3J610862594926351
[payment_type] => instant
[last_name] => farooq
[item_name1] => Product 1
[receiver_email] => business@gmail.com
[payment_fee] => 0.59
[quantity1] => 1
[receiver_id] => RSDJM66ZP7LZ8
[txn_type] => cart
[mc_gross_1] => 9.99
[mc_currency] => USD
[residence_country] => US
[test_ipn] => 1
[transaction_subject] => 49
[payment_gross] => 9.99
[ipn_track_id] => af46df962d1bf
[cmd] => _notify-validate
)
而这个应该用于订阅配置文件:
[2016-10-31 16:27:09] local.INFO: IPN RESPONSE:Array
(
[payment_cycle] => every 12 Months
[txn_type] => recurring_payment_profile_created
[last_name] => farooq
[next_payment_date] => 03:00:00 Oct 31, 2016 PDT
[residence_country] => US
[initial_payment_amount] => 0.00
[currency_code] => USD
[time_created] => 09:26:08 Oct 31, 2016 PDT
[verify_sign] => AwD4sJJmdrzDKNGw7KMAMuZSx1AHAJkBGoIT8Zl86XtmqM9xpRo7woGm
[period_type] => Regular
[payer_status] => verified
[test_ipn] => 1
[tax] => 0.00
[payer_email] => customer@gmail.com
[first_name] => omer
[receiver_email] => business@gmail.com
[payer_id] => FA5XLVU3CLN92
[product_type] => 1
[shipping] => 0.00
[amount_per_cycle] => 9.99
[profile_status] => Active
[charset] => windows-1252
[notify_version] => 3.8
[amount] => 9.99
[outstanding_balance] => 0.00
[recurring_payment_id] => I-R159BJH8WJHF
[product_name] => 49
[ipn_track_id] => 45f60995a00
[cmd] => _notify-validate
)
现在我的问题是,如果有人用他的 paypal 帐户停用他的订阅怎么办?显然我认为我不会在下一个计费周期收到 ipn 响应。或者 paypal 是否会回复您说订阅已被停用?
我是否一直在寻找是否在某个账单日期收到了 ipn,如果我没有收到 ipn,我只是假设他们可能已经从 paypal 中停用了订阅。
这是最好的方法吗?如果可能的话,你能解释一下你是如何在你的系统上工作的吗?
我实际上在几年前就此写了一篇文章,解释了可以为订阅生成的所有不同类型的 IPN。如果您想阅读完整答案,我已将其重新发布 on my personal blog,但这是简短的答案:您将获得带有 txn_type=recurring_payment_profile_cancel
的 IPN。这应该在买家取消订阅后立即发生。
现在...如果买家在订阅过程中取消,您将在结算周期结束时获得带有 txn_type=recurring_payment_expired
的第二个 IPN。例如,如果您的订阅每 12 个月计费一次,而买家在 6 个月后取消,您将在他们取消时获得一个带 txn_type=recurring_payment_profile_cancel
的 IPN,另一个带 txn_type=recurring_payment_expired
在 12 个月结束时(例如,当 PayPal 为接下来的 12 个月开具账单时)。这个想法是买家已经支付了 12 个月的费用,即使他们仅在 6 个月后取消了付款。 recurring_payment_expired
IPN 本质上是通知你说 "hey, this person's subscription is up — now you should deactivate whatever product/service you're providing to them".