【问题标题】:How to set PayPal recurring payments with different billing cycles & amounts using PayPal rest-api-sdk?如何使用 PayPal rest-api-sdk 设置具有不同计费周期和金额的 PayPal 定期付款?
【发布时间】:2019-11-03 10:30:31
【问题描述】:

我尝试了以下代码来设置不同的计费周期,但它不起作用。这段代码有什么错误?

提前致谢!

$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
));

【问题讨论】:

  • 20 和 30 在技术上是常量,您不能将它们作为表单请求中的名称或将它们作为对象的属性访问,这是语法错误
  • 那么我该如何解决这个问题?
  • 我发布了一个答案
  • 哦,对不起,它是正确的。如果有其他问题?
  • 其他问题 = 其他问题

标签: php laravel


【解决方案1】:

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'
    )));

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2015-10-04
    • 2020-04-11
    • 2015-11-22
    • 2013-05-29
    • 2015-08-11
    • 2015-02-26
    • 2014-06-20
    • 2021-02-08
    • 1970-01-01
    相关资源
    最近更新 更多