2015-02-02 2 views
2

Я пытаюсь интегрировать регулярные платежи Paypal для своего мобильного приложения. До сих пор мне удалось осуществить Paypal платежи на различных PHP приложений с помощью использования https://github.com/paypal/PayPal-PHP-SDK, но это первый раз, я реализую регулярные платежиPaypal устанавливает неограниченные циклы для повторяющихся платежей

Я пытаюсь построить оплату плана выставления счетов, используя следующий код:

 $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 я понял, что для set неограниченных подписчиков «setCycles» должно быть установлено равным 0. Установка его в 0 с помощью PHP SDK возвращает ошибку 400.

Все выглядит хорошо, и я получаю первый платеж, но я не уверен, что установка цикла на «1» будет выполнять работу, которую я ищу.

ответ

3

Просто нашел решение:

https://developer.paypal.com/docs/api/#paymentdefinition-object

Количество циклов в этом определении оплаты. Для планов типа INFINITE циклы должны быть установлены равными 0 для REGULAR типа payment_definition. Необходимые.

так, в основном, вы должны установить тип плана «INFINITE» для того, чтобы установить циклы 0.

Спасибо.

+0

Можете ли вы добавить код. Я получаю ту же ошибку, когда я помещаю «INFINITE» и цикл до 0 – sarath

3

У меня была такая же проблема, мое решение было просто удалить setCylcles altogther смотрите здесь пример того, как классы определения плана и оплаты должен выглядеть:

$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 
Смежные вопросы