Stripe Billing > Quickstart / クイックスタート

Stripedocumentation

目次一覧

 状態:-  閲覧数:469  投稿日:2019-03-05  更新日:2019-03-21  
Billing Quickstar / 請求クイックスタート

Billing Quickstar / 請求クイックスタート

 閲覧数:128 投稿日:2019-03-05 更新日:2019-03-07 

docs


Billing > Quickstart
Billing Quickstart
請求クイックスタート

Stripe Billing


Stripeプラットフォームに組み込まれた定期的な請求エンジン

Stripe Billing の役割
・請求書を作成する
・請求エンジンは自動的に請求書の支払いを集めるように働く

請求書
・次の2つの方法のいずれかで作成される
・1.手動 - 一回限りの請求書
・2.自動 - 定期購読を繰り返す

請求方法


Stripeでの顧客への請求は簡単
・必要に応じて顧客に請求することも、 購読を使用して定期的に請求することもできる

一時請求書を作成するには?
・1.Stripeアカウントに顧客を作成する
・2.あなたのストライプダッシュボードから、あなたの顧客のための一回限りの請求書を作成する

定期的に顧客に自動的に請求するには、次の3つの手順に従う
・1.請求額と期間を設定した「サービス製品と料金プラン」を定義する
・2.Stripeアカウントに顧客を作成する
・3.顧客をプランに登録する

・このクイックスタートの残りの部分では、サブスクリプション手順について詳しく説明する

ステップ1:サービス製品と料金プランを定義する


サブスクリプションを作成する前に
・まず「顧客へ提供する予定のサービスを表す製品」を作成する必要がある
・商品とサービスの2種類がある
・商品はOrders APIでの使用を目的としているが、サービスは購読用である
・商品を作成するときは、 typeパラメータを使用して正しい商品を指定する
・次のコードは、サービスタイプ製品を作成する方法を示している
// 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_●●");

$product = \Stripe\Product::create([
   'name' => 'My SaaS Platform',
   'type' => 'service',
]);


APIを介して商品を作成する場合
・レスポンスにはIDが含まれている
・これを使用して商品にプランを添付することができる

plan
・アイテムごとのコスト、通貨、および請求サイクルを表すオブジェクト
・すべての plan は、product に添付されている
・バリエーションの数に応じて、1つの計画または数百の計画を定義する必要がある
・例えば、様々な地域で異なる通貨を受け入れる場合は、同じ商品にUSDとJPYの計画を別々に作成することをお勧めする
・既存の product に plan を添付するには、 productパラメータの値として目的の商品のIDを渡す
・ このコードはAPIを介してSaaS Platform USDプランを作成し、それを製品に添付する
// 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_●●");

$plan = \Stripe\Plan::create([
   'product' => 'prod_CbvTFuXWh7BPJH',
   'nickname' => 'SaaS Platform USD',
   'interval' => 'month',
   'currency' => 'usd',
   'amount' => 10000,
]);


・Stripeは、関連するすべての詳細を含む新しいplanオブジェクトを返す

・プランには、プラン作成時に自動的に生成される一意のIDがある
・顧客をプランに加入させるときに、APIリクエストでこのIDを提供してくれ
・このチュートリアルの残りの部分では、 ダッシュボードまたはAPIを使用してSaaS Platform USDプランを作成したことを前提としている

ステップ2:顧客を作成する


customer
・実際の顧客を表すStripeオブジェクトで、支払いを簡単に処理できる
・通常、Eメールアドレスなどのメタデータをcustomerオブジェクトに格納することもできる
・その後の請求を可能にするために、クレジットカードや銀行口座(ACH支払い用)など、保存された支払い方法の有無にかかわらず顧客を作成できる
・ SaaS Platform USDプランの初回および月額料金は100ドルであるため、保存された支払い方法を持つ顧客のみがそれを購読できる
・あなたは安全にCheckout または Elements を介して顧客の支払い情報を集めることができる
・このコードはAPIを介して顧客を作成し、保存された支払い方法として機能するためのソースを提供する
・"source"パラメータには、「Elements/Stripe.js で顧客のカード情報を取得した際のレスポンス」に含まれるソースID(src_xxxx)を指定
// 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_●●");

$customer = \Stripe\Customer::create([
   'email' => 'jenny.rosen@example.com',
   'source' => 'src_18eYalAHEMiOZZp1l9ZTjSU0',
]);

・src_xxxxを適当に指定すると、エラー発生する
( ! ) Fatal error: Uncaught Stripe\Error\InvalidRequest: No such token: src_18eYalAHEMiOZZp1l9ZTjSU0

・Stripeは、すべての関連情報を含む新しいCustomerオブジェクトを返す
Stripe\Customer::__set_state(array(
  'saveWithParent' => false,
  '_opts' =>
 Stripe\Util\RequestOptions::__set_state(array(
    'headers' =>
   array (
   ),
    'apiKey' => 'sk_test_●●',
    'apiBase' => NULL,
 )),
  '_originalValues' =>
 array (
   'id' => 'cus_Ee8Xv5WGk84WdB',
   'object' => 'customer',
   'account_balance' => 0,
   'created' => 1551842256,
   'currency' => NULL,
   'default_source' => 'card_1EAqG7JiXAQvfxv3V1KS6XNm',
   'delinquent' => false,
   'description' => 'Customer for 2019年3月6日',
   'discount' => NULL,
   'email' => '◇◇@yahoo.co.jp',
   'invoice_prefix' => '8981C23',
   'invoice_settings' =>
   array (
     'custom_fields' => NULL,
     'footer' => NULL,
   ),
   'livemode' => false,
   'metadata' =>
   array (
   ),
   'shipping' => NULL,
   'sources' =>
   array (
     'object' => 'list',
     'data' =>
     array (
       0 =>
       array (
         'id' => 'card_1EAqG7JiXAQvfxv3V1KS6XNm',
         'object' => 'card',
         'address_city' => NULL,
         'address_country' => NULL,
         'address_line1' => NULL,
         'address_line1_check' => NULL,
         'address_line2' => NULL,
         'address_state' => NULL,
         'address_zip' => NULL,
         'address_zip_check' => NULL,
         'brand' => 'Visa',
         'country' => 'US',
         'customer' => 'cus_Ee8Xv5WGk84WdB',
         'cvc_check' => 'pass',
         'dynamic_last4' => NULL,
         'exp_month' => 1,
         'exp_year' => 2020,
         'fingerprint' => 'LMqocVHP8RNDkMLj',
         'funding' => 'credit',
         'last4' => '4242',
         'metadata' =>
         array (
         ),
         'name' => '◇◇@yahoo.co.jp',
         'tokenization_method' => NULL,
       ),
     ),
     'has_more' => false,
     'total_count' => 1,
     'url' => '/v1/customers/cus_Ee8Xv5WGk84WdB/sources',
   ),
   'subscriptions' =>
   array (
     'object' => 'list',
     'data' =>
     array (
     ),
     'has_more' => false,
     'total_count' => 0,
     'url' => '/v1/customers/cus_Ee8Xv5WGk84WdB/subscriptions',
   ),
   'tax_info' => NULL,
   'tax_info_verification' => NULL,
 ),
//以下省略


・上記はCustomerオブジェクトの一部に過ぎない
・顧客の作成呼び出しによって返された完全なオブジェクトも、この顧客にsubscriptionがないことを示している

・顧客を作成したら、後で参照できるように(おそらく顧客の電子メールアドレスとともに)自分のデータベースにid値を保存する
・PHPでの「id値」取得例
\Stripe\Stripe::setApiKey('sk_test_●●');

$customer = \Stripe\Customer::create([
  'description' => 'Customer for 2019年3月6日',
  'email' => $_POST['stripeEmail'],
  'source'  => $_POST['stripeToken'],
]);
echo $customer['id'];


ステップ3:顧客をplanに加入させる


最後に、planと顧客を関連付けてsubscriptionを作成する
・「'customer'」及び「'plan'」パラメータは、適切な値を設定しないと正常動作しない
// 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_●●");

$subscription = \Stripe\Subscription::create([
   'customer' => 'cus_4fdAW5ftNQow1a',
   'items' => [['plan' => 'plan_CBXbz9i7AIOTzr']],
]);


・これで、顧客がプランに加入した
・舞台裏では、Stripeは請求サイクルごとに請求書を作成する
・請求書は、顧客に何の支払いがあるかを明示し、いつ請求されるかを反映し、支払い状況を追跡する
・セットアップ料金などの一時的な料金を、請求書に追加項目として追加することもできる

・ほとんどのサブスクリプションアクティビティはこの時点から自動的に行われるため(詳細については請求ワークフローとライフサイクルドキュメントを参照)、イベントが発生したときに通知を受けるWebフックを確立することをお勧めする


Tell me why I can also access as an array as an object


Stripe Payments > COLLECTING PAYMENT DETAILS / 支払い詳細の収集 > Stripe.js and Elements

Stripe Payments > PREPARING FOR SCA > Payment Intents

コメント投稿(ログインが必要)



週間人気ページランキング / 11-24 → 11-30
順位 ページタイトル抜粋 アクセス数
1 Stripe Q11。テストAPIで、実際のカード番号を入力したらどうなりますか? | QA(Stripe) 16
2 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 15
3 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 14
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 14
4 その他エントリー(Stripe) カテゴリー 13
5 EMVCo | クレジットカード仕様(仕様) 11
6 Stripe Q47。Charge::create の 'receipt_email' について | QA(Stripe) 9
6 Sources and Customers / Sourceオブジェクト と Customerオブジェクト 9
6 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 9
7 機能一覧表 / Q.アカウント複数作成 / Stripeアカウント登録 7
8 クレジットカード決済代行サービス | 決済(Webサービスビジネス) 6
8 Payment Intents Usage Guide / Payment Intents 使用ガイド 6
9 投げ銭サービス | 課金販売できるプラットフォーム 5
9 Stripe Connect Customアカウント の検討 | Stripe 5
9 新 Stripe 内の選択肢 | その他エントリー(Stripe) 5
9 Stripe Q24。After attaching the source to the customer object, how do I check from the customer object? | QA(Stripe) 5
9 Stripe Q22。「新規Customerオブジェクト作成」と「'source'パラメータ指定タイミング」について | QA(Stripe) 5
9 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 5
10 為替取引の機能面による分類 / 為替取引の隔地者による分類 4
10 Stripe Q48。「Checkout\Session - server」「Charge」「PaymentIntent」の使い分け方 | QA(Stripe) 4
2021/12/1 1:01 更新