Я пытаюсь интегрировать регулярные платежи Paypal для моего мобильного приложения. До сих пор мне удалось реализовать платежи Paypal в различных приложениях PHP с использованием https://github.com/paypal/PayPal-PHP-SDK, но это первый раз, когда я осуществляю регулярные платежи
Я пытаюсь построить платеж для тарифного плана, используя следующий код:
$paymentDefinition = new PaymentDefinition();
$paymentDefinition->setName('Mobile App subscription')
->setType('REGULAR')
->setFrequency('Month')
->setFrequencyInterval("1")
->setCycles("1")
->setAmount(
new Currency(
array(
'value' => 50,
'currency' => 'USD'
)
)
);
Из документации Paypal я понял, что для setCycles должно быть установлено значение 0 для неограниченных подписок. Установка его в 0 с помощью PHP SDK возвращает ошибку 400.
Все выглядит хорошо, и я получаю первый платеж, но я не уверен, что установка Цикла в «1» сделает работу, которую я ищу.
Просто нашел решение:
https://developer.paypal.com/docs/api/#paymentdefinition-object
Количество циклов в этом определении платежа. Для планов типа INFINITE циклы должны быть установлены в 0 для типа REGULAR payment_definition. Необходимые.
Таким образом, в основном вы должны установить тип плана «БЕСКОНЕЧНЫЙ», чтобы установить 0 циклов.
Спасибо.
У меня была та же проблема, мое решение было просто удалить setCylcles, посмотрите здесь пример того, как должны выглядеть классы плана и определения платежа:
$plan = new Plan();
$plan->setName('Some example name')
->setDescription('A short description of the plan')
->setType('INFINITE');
$paymentDefinition = new PaymentDefinition();
$paymentDefinition->setName('Regular Payments')
->setType('REGULAR')
->setFrequency('Month')
->setFrequencyInterval("1")
->setAmount(new Currency(array('value' => 100, 'currency' => 'USD')));enter code here