Требование:
Мы хотим, чтобы базовая подписка составляла X / месяц и осуществлялась посредством регулярных платежей, и мы даем клиентам возможность выбирать дополнительные «дополнения» по своему усмотрению. «Надстройка» будет Y / Месяц и должна длиться до конца основной подписки. Например, базовая подписка составляет 10 / месяц, а функция X — дополнительные 5 / месяц, а функция Y — дополнительные 7 / месяц. Я выбираю базовую подписку с функциями X и Y, поэтому мой общий ежемесячный платеж за год составит 22 месяца. Теперь, если я выбрал только базовую подписку на первые 6 месяцев и хочу начать использовать функцию X в течение последних 6 месяцев моей подписки, последние 6 месяцев должны составлять 15 / месяц, а не предыдущие 10 / месяц. В дальнейшем условия подписки на дополнительные функции должны продолжаться в течение срока действия базовой подписки.
Есть ли простой способ сделать это через API PayPal?
Реальные профили повторяющихся платежей (настроенные с помощью стандартной или экспресс-проверки) имеют ограничение на то, насколько вы можете увеличить сумму профиля. Вы можете поднять его только на 20% каждые 180 дней. Однако если вы создадите профиль регулярных платежей в Payments Pro, то такого ограничения не будет, и вы можете в любой момент изменить сумму на любую нужную вам. Я бы не рекомендовал обходиться без EC, так как многие люди предпочитают платить через PayPal.
Однако вы могли бы вместо использования API-интерфейсов для регулярных платежей использовать соглашения о выставлении счетов / ссылочные транзакции. Таким образом, вы сохраните соглашение о выставлении счета / идентификатор авторизации в своей базе данных, а затем сможете использовать API-интерфейс DoReferenceTransaction для обработки любой переменной суммы, необходимой вам в любое время.
Таким образом, в этом случае вы, по сути, создадите свою собственную систему повторяющихся платежей, в которой вы сохраните «дату следующего платежа» в своей базе данных, а затем у вас будет ежедневно запускаться автоматический сценарий для обработки всех платежей, подлежащих оплате. в тот день через справочную транзакцию.
Референтные транзакции также работают с Payments Pro, поэтому, если вы используете это, все будет работать так же.
Поскольку вы работаете с PHP, я рекомендую взглянуть на мой библиотека классов для PayPal. Это сделает все эти вызовы API очень простыми для вас.
Других решений пока нет …