Как добавить несколько пакетов для регулярного платежа PayPal с различным циклом оплаты и суммой, используя paypal rest-api-sdk - PullRequest
0 голосов
/ 03 ноября 2019

Я уже пробовал этот код, но он не удался.

$paymentDefinition_0 = new PaymentDefinition();
$paymentDefinition_1 = new PaymentDefinition();

$paymentDefinition_0->setName('1stPayment')
    ->setType('REGULAR')
    ->setFrequency('DAY')
    ->setFrequencyInterval('1')
    ->setCycles('1000')
    ->setAmount(new Currency(array(
        'value' => $request->20,
        'currency' => 'USD'
    )));
$paymentDefinition_1->setName('2nd Payment')
    ->setType('REGULAR')
    ->setFrequency('DAY')
    ->setFrequencyInterval('1')
    ->setCycles('1000')
    ->setAmount(new Currency(array(
        'value' => $request->30,
        'currency' => 'USD'
    )));
$plan->setPaymentDefinitions(array(
    $paymentDefinition,
    $paymentDefinition_1
));

1 Ответ

2 голосов
/ 03 ноября 2019

20 и 30 являются технически постоянными, вы не можете иметь их как имена в запросах формы или обращаться к ним как к свойствам объектов, это синтаксическая ошибка

Либо жестко закодируйте значения, если они постоянны

$paymentDefinition_0->setName('1stPayment')
    ->setType('REGULAR')
    ->setFrequency('DAY')
    ->setFrequencyInterval('1')
    ->setCycles('1000')
    ->setAmount(new Currency(array(
        'value' => 20,
        'currency' => 'USD'
    )));
$paymentDefinition_1->setName('2nd Payment')
    ->setType('REGULAR')
    ->setFrequency('DAY')
    ->setFrequencyInterval('1')
    ->setCycles('1000')
    ->setAmount(new Currency(array(
        'value' => 30,
        'currency' => 'USD'
    )));

Или присвойте им имя строки в форме HTML и получите доступ к этому имени как свойству объекта запроса

Например

<form action="/" method="post">
    @csrf
    <input type="number" name="paymentDefinition_0" value="20"><br>
    <input type="number" name="paymentDefinition_1" value="30"><br>
    <button type="submit">Submit</button>
</form>

И получите доступ соответственно

$paymentDefinition_0->setName('1stPayment')
    ->setType('REGULAR')
    ->setFrequency('DAY')
    ->setFrequencyInterval('1')
    ->setCycles('1000')
    ->setAmount(new Currency(array(
        'value' => $request->paymentDefinition_0,
        'currency' => 'USD'
    )));
$paymentDefinition_1->setName('2nd Payment')
    ->setType('REGULAR')
    ->setFrequency('DAY')
    ->setFrequencyInterval('1')
    ->setCycles('1000')
    ->setAmount(new Currency(array(
        'value' => $request->paymentDefinition_1,
        'currency' => 'USD'
    )));

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...