Срок действия подписки PayPal истек

Что касается подписок PayPal, мне кажется, что все, что мне нужно сделать, - это относиться к нему как к обычному IPN, за исключением поля txn_type. Когда я вижу один из следующих кодов состояния, я отправляю электронное письмо администратору, чтобы он рассмотрел возможность истечения срока действия этого члена вручную в панели администратора моего программного обеспечения, которое я создаю на PHP.

Статусы выглядят одним из следующих, чтобы указать, что клиент либо отказался, либо у него закончился срок, либо он просто больше не платит. Может ли кто-нибудь подтвердить, что это правильные статусы для проверки, или я включил пару неправильных?

  • subscr_cancel
  • subscr_eot
  • subscr_failed
  • recurring_payment_failed
  • recurring_payment_suspended_due_to_max_failed_payment
  • recurring_payment_outstanding_payment_failed
  • recurring_payment_profile_cancel
  • recurring_payment_expired

person Volomike    schedule 13.12.2012    source источник


Ответы (3)


Если вы использовали механизм кнопки подписки, и это не одна из предварительно одобренных повторяющихся платежей, то, я думаю, вы увидите только префиксы «subscr».

Я лично не отвечаю на "subscr_cancel" в моем приложении. IPN для этого отправляется в момент отмены пользователем. Я не хочу отключать их доступ на этом этапе, поэтому я жду «subscr_eot» и делаю это потом.

Таким образом, если они подписываются на год и отменяют подписку на следующий день, у них все еще есть доступ к концу года, когда PayPal отправит «subscr_eot». Они всегда отправят оба.

person Iain M Norman    schedule 15.01.2013

Я обнаружил, что это те, на которые стоит обратить внимание в отношении реакции типа "конец членства" в моем коде:

  • subscr_cancel
  • subscr_eot
  • recurring_payment_profile_canceled
  • recurring_payment_expired

Все остальные - просто «шум» относительно статуса «конец членства». Например, реагировать на любые IPN типа «сбой» платежа было бы неправильно, потому что в конечном итоге PayPal может исправить эту проблему с клиентом после повторной попытки, и поэтому события отмены и истечения срока действия действительно то, что вам следует искать.

person Volomike    schedule 23.12.2012

Я знаю, что опоздал с этим постом, но вот быстрое решение (php) для вашего вопроса:

switch ($_POST['txn_type']) {
    case 'cart':
          //for products without subscription
     break;
    case 'subscr_payment':
        //subscription payment recieved
        break;

    case 'subscr_signup':
        //subscription bought payment pending
        break;

    case 'subscr_eot':
       //subscription end of term
        break;

    case 'subscr_cancel':
        //subscription canceled
        break;
 }
person Andres SK    schedule 29.01.2015