Нужно ли мне выполнять мое Соглашение о выставлении счетов PayPal только один раз или каждый раз, когда требуется оплатить счет?

Я пытаюсь включить членскую подписку на свой веб-сайт, используя paypalrestsdk с python в приложении django. Я так понимаю, что мне нужно сделать следующее:

  1. Настройте план выставления счетов для каждого типа подписки (например, ежемесячный план за 10 долларов в месяц и годовой план за 100 долларов в месяц).
  2. Создайте BillingAgreement, который (в зависимости от выбранного пользователем плана выставления счетов) перенаправляет пользователя для утверждения соглашения и возвращает объект соглашения, который дает мне возможность доступа к информации о плане для обновления, приостановки и повторной активации соглашения.
  3. Наконец, чтобы начать работу, мне нужно выполнить BillingAgreement. Это та часть, которая меня смущает. Нужно ли мне выполнять соглашение каждый месяц (для моих пользователей, которые согласились на ежемесячную подписку) или я должен выполнять соглашение один раз, чтобы PayPal автоматически обрабатывал ежемесячный платеж? Если последний случай является ответом, то как я узнаю, что платеж по какой-то причине не прошел? (Или мне нужно проверять каждый раз, когда пользователь входит в систему, извлекая его BillingAgreement и выполняя поиск транзакций в определенном диапазоне дат для этого соглашения, чтобы убедиться, что они актуальны и ни одна из них не завершилась неудачно?)

Я просмотрел документы для разработчиков PayPal, а также образцы GitHub. Я также успешно написал код для создания и выполнения разовых платежей с использованием песочницы, и, похоже, все работает нормально. Меня просто смущает то, как работают регулярные платежи в API REST - в частности, см. № 3 выше.


person Melanie    schedule 08.09.2014    source источник


Ответы (1)


Вам не нужно подписывать соглашение о выставлении счетов каждый месяц, а только один раз, чтобы начать действие соглашения, т. е. сообщить PayPal об автоматической обработке ежемесячного платежа.

Вы можете использовать функцию поиска транзакций, чтобы убедиться, что ни один из платежей пользователя не завершился неудачей, но вам может потребоваться делать это только в начале каждого ежемесячного платежного цикла для конкретного пользователя. В отличие от каждого входа в систему. В будущем мы постараемся предоставить лучшие механизмы уведомления, чтобы информировать продавца о том, что платеж по соглашению о выставлении счетов не прошел / изменил статус.

person Avi Das    schedule 08.09.2014