3

現在、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 で構成されていない試用期間がある場合は、購読後に手動で試用終了日を設定する必要があります。」しかし、その時点までに、購読は既に作成されているため、料金は既に請求されています。作られた……

4

3 に答える 3

2

私の知る限り、顧客を購読した後、試用期間の終了時間を設定する必要があります.

そのようです:

$trialEndDateUnixTimestamp = strtotime(Carbon::parse($company->trial_ends_at));

$customer->subscription('annual')
         ->create(NULL, $customer);

$customer->trial_ends_at = $trialEndDateUnixTimestamp;

$cusomer->save();

Laravelキャッシャードキュメント

サブスクリプションを作成するには、まず課金対象モデルのインスタンスを取得します。これは通常、App\User のインスタンスになります。モデル インスタンスを取得したら、サブスクリプション メソッドを使用してモデルのサブスクリプションを管理できます。

$user = User::find(1);

$user->subscription('monthly')->create($creditCardToken);

create メソッドは、Stripe サブスクリプションを自動的に作成し、Stripe 顧客 ID およびその他の関連する請求情報でデータベースを更新します。プランに Stripe で構成されたトライアルがある場合、トライアルの終了日もユーザー レコードに自動的に設定されます。

トライアル期間を実装したいが、トライアルを Stripe 内で定義するのではなく、アプリケーション内で完全に管理している場合は、トライアルの終了日を手動で設定する必要があります。

$user->trial_ends_at = Carbon::now()->addDays(14);

$user->save();

于 2015-12-07T01:04:35.517 に答える
1
$company->trial_ends_at = date('Y-m-d', strtotime("+14 days"));
于 2015-12-07T06:21:26.960 に答える