Обнаружение отмены подписки Paypal - PullRequest
9 голосов
/ 19 января 2010

Я написал простую систему подписки PayPal, в которой пользователь может ввести свою информацию, нажать кнопку и начать подписку.Мне интересно, как я могу узнать, когда пользователь отменяет подписку?Я видел $ txn_type subscr_cancel, но я понятия не имею, как его использовать, так как PayPal больше не вызывает мой обработчик.

Ответы [ 2 ]

24 голосов
/ 19 января 2010

Используете ли вы IPN, если да, то при отмене подписки PayPal возвращает $_POST['txn_type'] = subscr_cancel вместе с subscr_date = дата подписки, subscr_id = идентификатор подписки и т. Д. Теперь вы можете обработать запрос отмены для возвращенного идентификатора подписки. Точно так же вы получаете $_POST['txn_type'] = subscr_eot, когда заканчивается подписка. Как только вы настроите IPN URL в настройках PayPal, он всегда будет вызывать ваш обработчик IPN. используйте случай переключения для обработки различных запросов, например,

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;
 }
7 голосов
/ 19 января 2010

IPN с типом subscr_cancel отправляется, когда пользователь фактически отменяет подписку. Это не должно использоваться для отмены подписки, поскольку это может произойти в любое время в течение периода подписки.

IPN с типом subscr_eot должен использоваться для отмены подписки. Отправляется по истечении срока подписки пользователя.

...