いつもお世話になります。
Stripeのサブスクリプションを用いた定期支払サービスをLaravelにて構築しております。
定期支払の顧客がプランを変更する際、事前に変更時の差額を提示したいと考えています。
下記サイトを参考にし、Laravel用にカスタマイズを試みたのですが
知識不足で出来ませんでした。
もし、ご存知の方いらっしゃいましたら
ご教授くださると大変助かります。
具体的にやりたいこと
月額払いのプラン「ライト(1,000円)」「スタンダード(5,000円)」の2種があります。
仮に、11月1日にライトプランに加入した顧客が月のちょうど真ん中15日でスタンダードプランに変更した場合の
次回請求時の差額を自動で計算したいです。
※日割りの算出方法は、Stripe Billing における定期支払いの基本的な考え方に従う(下記URL参照)。
※毎月1日に当月請求書発行。
※スタンダードからライトへのダウングレード時も同様に自動計算したい。
※テーブル構成はCashierマイグレーション時のもの。
【参考URL】Stripe Billing - 定期支払いにおける比例配分の考え方
https://qiita.com/y_toku/items/404b3c99632161f18579
該当のソースコード
【参考URL】https://stripe.com/docs/billing/subscriptions/prorations#prorations
// Set your secret key: remember to change this to your live secret key in production // See your keys here: https://dashboard.stripe.com/account/apikeys \Stripe\Stripe::setApiKey('sk_test_Ar66eiYNVgxtbd07ig6vIugp009e1S3qwk'); // Set proration date to this moment: $proration_date = time(); $subscription = \Stripe\Subscription::retrieve('sub_49ty4767H20z6a'); // See what the next invoice would look like with a plan switch // and proration set: $items = [ [ 'id' => $subscription->items->data[0]->id, 'plan' => 'plan_CBb6IXqvTLXp3f', # Switch to new plan ], ]; $invoice = \Stripe\Invoice::upcoming([ 'customer' => 'cus_4fdAW5ftNQow1a', 'subscription' => 'sub_49ty4767H20z6a', 'subscription_items' => $items, 'subscription_proration_date' => $proration_date, ]); // Calculate the proration cost: $cost = 0; $current_prorations = []; foreach ($invoice->lines->data as $line) { if ($line->period->start == $proration_date) { array_push($current_prorations, $line); $cost += $line->amount; } }
エラーコード
No API key provided. (HINT: set your API key using "Stripe::setApiKey(<API-KEY>)". You can generate API keys from the Stripe web interface. See https://stripe.com/api for details, or email support@stripe.com if you have any questions.
試したこと
上記コード
$subscription = \Stripe\Subscription::retrieve('sub_49ty4767H20z6a');
下記コードに置き換え
$subscription =$user->subscription('main');
エラーコード
Trying to get property 'data' of non-object //$subscription->items->data[0]->id が無いとなる
開発環境
Laravel 6.0.3
laravel/cashier 9.3.5
PHP 7.3.5
xampp
windows 10
ご回答いただけましたら嬉しく存じます。
回答1件
あなたの回答
tips
プレビュー