Динамический план чередования с sca

Моя проблема: я работаю над приложением на основе подписки или рассрочки, поэтому пользователь получает любую сумму, которую он должен был получить в течение 3 или 6 месяцев. Для этого я использовал метод чередования и расписания:

При создании плана, если цена указана вручную, она работает. Подписка создается Но у меня иногда есть расчет и сумма меняется как динамическая подписка и я хочу чтобы цена была динамической.

Но когда я делаю amount" => $price,dynamic Я получаю сообщение об ошибке «Этот платеж требует дополнительных действий пользователя, прежде чем он может быть успешно завершен. Платеж может быть завершен с использованием PaymentIntent, связанного со счетом-фактурой. Подробнее см.: https://stripe.com/docs/billing/subscriptions/overview#требует-действие"

           //Fetching intent 
     $intent = \Stripe\PaymentIntent::retrieve($paymentMethodParams->paymentIntent['id']);
    
    //Create stripe user
    $customer = \Stripe\Customer::create(([
          'email' => 'evansd@ed.com',
          'description' => 'Valued Customer',
          'name' => 'Ed Ward', 
          'payment_method' => $paymentMethodParams->paymentMethod['id'],
          'invoice_settings' => 
              [
                'default_payment_method' => $paymentMethodParams->paymentMethod['id']
              ]
      ]));

      //Attaching paymentIntent with Customer
     \Stripe\PaymentIntent::update($paymentMethodParams->paymentIntent['id'],
        [
          'customer' => $customer->id,
        ]
      );
     $intent = \Stripe\PaymentIntent::retrieve($paymentMethodParams->paymentIntent['id']);

    $product = \Stripe\Product::create([
      'name' => 'Payment plan for user',
      'type' => 'service'
    ]);

    //Creating plan for the customer
    $plan = \Stripe\Plan::create(
      array(
        "product" => [
            "name" => '#1 monthly Subscription'
        ], 
        "amount" => 200,
        'nickname' => 'Payment Plan for order - ',
        "currency" => 'GBP',
        "interval" => 'month', 
        "interval_count" => 1,
        'metadata' => [                  
        ]
      )
    );

     $schedule = \Stripe\SubscriptionSchedule::create([
      'customer' => $customer->id,
      'start_date' => 'now',
      'end_behavior' => 'cancel',
      'metadata' => [
         'local_id' => 'ABC 12345',                    
      ],
      'phases' => [
          [
              'items' => [
                  [
                      'plan' => $plan->id,
                  ],
              ],
              'iterations'=>2
          ],
      ],
      ]);

 $subscription_id = $schedule->subscription;
 $result = \Stripe\Subscription::update($subscription_id,
    [
        'expand' => ['latest_invoice.payment_intent'],                
    ]
  );
$invoice = \Stripe\Invoice::retrieve($result->latest_invoice->id);
$invoice->pay();

Что я сделал до сих пор:

1: Я даже пытался установить $price = 1и поэтапно ' quantity' => $price * $qtyпоэтому он берет мою цену. Но потом опять то же самое.

Эта проблема касается только некоторых тестовых карт, таких как: 4000 0027 6000 3184.(проблема началась, когда была внедрена SCA). Остальные карты без правил sca работают отлично.(Эти карты требуют аутентификации для всех транзакций, независимо от того, как настроена карта.)

2: сначала создали план, а затем создали клиента с планом, как указано в планах подписки Stripe с различными суммами.

Я думаю, что это не действие пользователя, а проблема с ценой динамического плана. Если цена статична, то работает и со sca-картой.

Заранее спасибо.

0 ответов

Другие вопросы по тегам