为什么我在创建 Stripe Checkout 会话时收到“收到未知参数:subscription_data[backdate_start_date]”?

问题描述 投票:0回答:1

我正在尝试为订阅创建 Stripe Checkout 会话,但遇到错误,指出“收到未知参数:subscription_data[backdate_start_date]”。这是我的代码的相关部分:

public function createCheckoutSession($customerId, $priceId, $isSubscription = false)
    {
        $now = Carbon::parse('2024-03-01');
        $financialYearStart = Carbon::createFromDate($now->year, 7, 1);
        $financialYearEnd = Carbon::createFromDate($now->year + 1, 6, 30);

        $sessionParams = [
            'payment_method_types' => ['card'],
            'customer' => $customerId,
            'line_items' => [[
                'price' => $priceId,
                'quantity' => 1,
            ]],
            'success_url' => url('https://test/payment/success?session_id={CHECKOUT_SESSION_ID}'),
            'cancel_url' => url('https://test/payment/cancel'),
            'mode' => $isSubscription ? 'subscription' : 'payment',
            'subscription_data' => [],
        ];

        if ($isSubscription) {
            if ($now->month == 6) {
                // User starts in June, calculate remaining days in June for trial period
                $trialEndDate = Carbon::createFromDate($now->year, 6, 30)->endOfDay();
                $sessionParams['subscription_data']['trial_end'] = $trialEndDate->timestamp;
            } else {
                // User starts before June, set the backdate start date
                $backdateStartDate = $financialYearStart->subYear()->timestamp;
                $billingCycleAnchor = $financialYearStart->timestamp;
                $sessionParams['subscription_data']['backdate_start_date'] = $backdateStartDate;
                $sessionParams['subscription_data']['billing_cycle_anchor'] = $billingCycleAnchor;
                Log::info('Setting backdate_start_date and billing_cycle_anchor for before June:', [
                    'backdate_start_date' => $sessionParams['subscription_data']['backdate_start_date'],
                    'billing_cycle_anchor' => $sessionParams['subscription_data']['billing_cycle_anchor']
                ]);
            }
        }
        Log::info('Stripe session params:', ['sessionParams' => $sessionParams]);
        return $this->stripe->checkout->sessions->create($sessionParams);
    }

错误日志:

Error processing payment: Received unknown parameter: subscription_data[backdate_start_date]

根据Stripe文档,backdate_start_date是创建订阅时的有效参数。为什么我会收到此错误,如何使用 Stripe 的结帐会话正确设置订阅的过去开始日期?

php laravel checkout subscription
1个回答
0
投票

根据我在 Stripe API 文档中在 Checkout > Sessions > Create a session 上搜索的内容,参数

subscription_data
具有以下子参数:

  • 申请费百分比
  • 计费周期锚点
  • 默认税率
  • 描述
  • 发票设置
  • 元数据
  • 代表
  • 按比例分配_行为
  • 传输数据
  • 试用结束
  • 试用期_天数
  • 试用设置

并且网址是

$stripe->checkout->sessions->create($params);

backdate_start_date
属于账单>订阅>创建订阅,url为
$stripe->subscriptions->create($params);

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.