猿问

在 Stripe 中创建多个阶段而不是使用 PHP foreach 进行调度

我有这段 PHP 代码,它遍历 Stripe 请求以创建计划。在下面的请求中,它遍历整个请求(从而为数组的每个元素创建一个新订阅)。我需要它做的是仅通过阶段部分对其进行迭代(以便所有付款日期都在一个时间表中)。


$paymentdates = array ("1592043010", "1592910720", "1594850400",  "1595851200", "1597021320");


  foreach ($paymentdates as $paymentdate) {

  $schedule = \Stripe\SubscriptionSchedule::create([

    'customer' => 'cus_HMDwmb8iAV0X7k',

    'start_date' => 'now',

    'end_behavior' => 'cancel',


      'phases' => [

        // only iterate this part

        [

          'end_date' => $paymentdate,

          'proration_behavior' => 'none',

          'plans' => [

            [

              'price_data' => [

                'unit_amount' => 2300,

                'currency' => 'usd',

                'product' => 'prod_HMDoA6Jpf0U1Fh',

                'recurring' => [

                    'interval' => 'year',

                ],

              ],

            ],

          ],

          // end iterate here

        ],

      ],

  ]);


  }


Cats萌萌
浏览 95回答 1
1回答

qq_笑_17

您在这里应该做的是首先构建阶段数组,最后创建时间表。我不完全理解为什么你有这么多阶段的同一个计划,但最终你会想要这样的东西$paymentdates = array ("1592043010", "1592910720", "1594850400",  "1595851200", "1597021320");$phases = []foreach ($paymentdates as $paymentdate) {  $phases[] = [    'end_date' => $paymentdate,    'plans' => [        [          'price_data' => [            'unit_amount' => 2300,            'currency' => 'usd',            'product' => 'prod_HMDoA6Jpf0U1Fh',            'recurring' => [                'interval' => 'year',            ],          ],        ],      ],  ];}$schedule = \Stripe\SubscriptionSchedule::create([  'customer' => 'cus_HMDwmb8iAV0X7k',  'start_date' => 'now',  'end_behavior' => 'cancel',  'phases' => $phases]);
随时随地看视频慕课网APP
我要回答