2016-11-02 3 views
0

Я сначала поручаю своим клиентам за мгновенную оплату, а затем создаю профиль подписки. вот ipn я получаю.Какой ответ ipn получен после деактивации подписки изнутри paypal?

Я думаю, это для мгновенной оплаты:

[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] => [email protected] 
    [num_cart_items] => 1 
    [mc_handling1] => 0.00 
    [verify_sign] => A8SKEyFJtpw0I2pUVRQ9wRhpVLh9AnPjeq8ltcpWBhIHlTZuf.ak4aa- 
    [payer_email] => [email protected] 
    [mc_shipping1] => 0.00 
    [tax1] => 0.00 
    [txn_id] => 3J610862594926351 
    [payment_type] => instant 
    [last_name] => farooq 
    [item_name1] => Product 1 
    [receiver_email] => [email protected] 
    [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] => [email protected] 
    [first_name] => omer 
    [receiver_email] => [email protected] 
    [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.

Это лучший способ сделать это? Если возможно, вы можете объяснить, как вы работаете в своих системах?

ответ

3

Я действительно написал рецензию на эти несколько лет назад, объясняя все типы IPN, которые могут быть сгенерированы для подписки. Я перепробовал его on my personal blog, если вы хотите прочитать полный ответ, но вот короткий ответ: вы получите IPN с txn_type=recurring_payment_profile_cancel. Это должно произойти, как только покупатель отменит их подписку.

Теперь ... если покупатель отменяет подписку в середине подписки, вы получите второй IPN с txn_type=recurring_payment_expired в конце биллингового цикла. Например, если у вас есть подписка, которая выставляет счет один раз в 12 месяцев, а покупатель отменяет через 6 месяцев, вы получите IPN с txn_type=recurring_payment_profile_cancel в момент их отмены, а другой IPN с txn_type=recurring_payment_expired в конце 12 месяцев (например, когда наступило время для оплаты PayPal в течение следующих 12 месяцев). Идея заключается в том, что покупатель заплатил за 12 месяцев, даже если они отменяются через 6 месяцев. recurring_payment_expired IPN - это, по сути, уведомление, чтобы вы сказали: «Эй, подписка этого лица вверх — теперь вы должны деактивировать любой товар/услугу, которую вы им предоставляете».

+0

Спасибо @matt, сообщение в блоге невероятно полезно. Я никогда не думал, что может быть много ответов. У меня есть быстрый вопрос, однако, означает ли recurring_payment_failed, что в счете PayPal покупателей недостаточно баланса? –

+0

Не обязательно, потому что покупатели могут оплачивать подписки с использованием других источников финансирования, таких как их банковский счет или кредитная карта. Это просто означает, что мы по какой-то причине не смогли оплатить платеж. (Отклоненная кредитная карта будет наиболее вероятной причиной, но это не единственная причина.) –

+0

вот что я подумал. Спасибо @matt :) –

Смежные вопросы