現在、Stripe で Laravel Cashier (4.2) を使用しています。現在使用している Stripe API のバージョンは 2014-06-17 です。サブスクリプションを作成するときに試用期間の終了日を設定するために、さまざまな方法を試しました。私はこのコードのあらゆる種類のバリエーションを試しました:
$company->trial_ends_at = Carbon::now()->addDays(14);
// Also tried this variation of the trial date
// $trialEndDateUnixTimestamp = strtotime(Carbon::parse($company->trial_ends_at));
$company->subscription('annual')
->create($creditCardToken, ['description'=>$company->company_name, 'email'=>Auth::user()->email], null);
$company->trial_ends_at = Carbon::now()->addDays(14);;
$company->save();
Stripe に送信されたリクエストを見ると、trial_end
常にnull
. どんなアイデアでも大歓迎です。
Laravel Cashierの公式ドキュメントには、次のように記載されています。
$user->subscription('monthly') ->withCoupon('code') ->create($creditCardToken);
サブスクリプション メソッドでは、Stripe サブスクリプションが自動的に作成され、Stripe 顧客 ID およびその他の関連する請求情報でデータベースが更新されます。プランに Stripe で構成されたトライアルがある場合、トライアルの終了日もユーザー レコードに自動的に設定されます。
プランに Stripe で設定されていない試用期間がある場合は、購読後に試用終了日を手動で設定する必要があります。
$user->trial_ends_at = Carbon::now()->addDays(14);
$user->save();
試用日の手動設定が機能していないようです。公式ドキュメントに記載されている方法を試しましたが、何らかの理由で試用期間が適用されていないため、ユーザーは常にすぐに課金されます。
ドキュメントを見れば見るほど、Stripe 側でないと試用期間さえサポートしていないと思います。重要な行は次のとおりです。「プランに Stripe で構成されていない試用期間がある場合は、購読後に手動で試用終了日を設定する必要があります。」しかし、その時点までに、購読は既に作成されているため、料金は既に請求されています。作られた……