Using Connect with Standard Accounts / StandardアカウントでConnectを使用する

「決済」及び「開発」関連用語集

カテゴリー: documentation  閲覧数:314 配信日:2019-04-05 08:23


docs


Connect > ACCOUNT TYPES > Standard
Using Connect with Standard Accounts
StandardアカウントでConnectを使用する

OAuth接続フロー


Standardアカウント
・次のOAuth接続フローを使用してプラットフォームに接続する

1.あなたのサイトのページから開始
・ユーザはStripeへ遷移するリンクをクリックする
・あなたのプラットフォームのclient_idを渡す

2.StripeのWebサイト
・ユーザーは自分のStripeアカウントに接続するか、新しいアカウントを作成して接続するように求められる

3.あなたのサイトへリダイレクト
・その後、ユーザーはあなたのサイトへリダイレクトされ 、「認証コード」または「ユーザーが接続しないことを選択した場合はエラー」を渡す

4.OAuthトークンエンドポイント
・その後、あなたのサイトはOAuthトークンエンドポイントにユーザーのアカウントIDを取得してあなたのサイトに保存するよう要求する
※ステップ4を完了した後、API 認証要求は接続されたアカウントに代わってそれらの認証資格情報を使用して行うことができる

ステップ1: OAuthリンクを作成する


システムを開始するには、 プラットフォーム設定から2つの情報が必要だ

Stripeによって生成されたあなたのclient_id
・あなたのプラットフォームのためのユニークな識別子
※Stripeはテストを容易にするために開発client_idも提供する

あなたのredirect_uri
・あなたが設定した、アカウントに接続した後(または失敗した場合)にユーザーがリダイレクトされるウェブサイト上のページ

これら2つの情報を手に入れて、OAuthリンクを作成する準備が整った
・ユーザーを当社のauthorize_urlエンドポイントに送信するConnectボタンを表示することをお勧めする
https://connect.stripe.com/oauth/authorize?response_type=code&client_id=ca_xxxx&scope=read_write

Stripeエンドポイントは少なくとも次の3つのパラメーターを受け取るはずだ
response_type 、値はcode
・あなたのclient_id
・read_writeの値を持つscope。scopeパラメータは、接続されたアカウントに代わってあなたのプラットフォームが何をできるかを決定する。read_onlyがデフォルトだ

CSRF攻撃を防ぐには
・値として一意のトークンを渡してstateパラメータを追加する
・ユーザーをあなたのサイトへリダイレクトするときにあなたから提供されたstateを含める

接続を開始するために上記のURLをユーザーに提示する方法は次のとおりだ
・Connectデモ0.ボタン画像リンク

ステップ2:ユーザーは自分のアカウントを作成または接続する


販売者(プラットフォーム参加希望者)が、あなたのサイトへ設置した「アカウント連結申請リンク」をクリックする
・Stripeアカウントを作成するプロセスが承認フローに追加されている
・販売者(プラットフォーム参加希望者)がすでにStripeアカウントを持っているかどうかを心配する必要はない

販売者(プラットフォーム参加希望者)がすでにStripeアカウントを持っている場合は、サインインをクリック
Stripe アカウントをすでにお持ちですか? サインイン
・下記URLへ遷移
https://connect.stripe.com/oauth/authorize?response_type=code&client_id=ca_xxxx&scope=read_write

販売者(プラットフォーム参加希望者)が、アカウント連結申請
・販売者(プラットフォーム参加希望者)は、あなたのプラットフォームへの接続を許可または拒否するように促される
・販売者(プラットフォーム参加希望者)は、画面に提示された必要項目を入力する
PHPデモ から、Stripe で支払いを受け入れるよう依頼が来ています。
いくつかの質問に回答するだけで、すぐにご利用になれます。 PHPデモ は お客様のデータにアクセスし、支払いと顧客の作成を代行できます。

コンプライアンス関連の質問
未提出
日本における改正割販法の施行に伴い、Stripeを通したオンライン決済の導入状況における質問にお答えください。

//中略

[このアカウントへのアクセスを許可する] [キャンセル]
直ちにPHPデモ (php-demo.w4c.work) に戻されます。
アカウントを作成すると、 利用規約と、 連結されたアカウントの利用規約に同意し、提供した情報が完全かつ正確であることを証明したものと見なされます。

・販売者(プラットフォーム参加希望者)が、「Stripe アカウントを連結」ボタンをクリック

ステップ3:ユーザーはあなたのサイトへリダイレクトされる


ユーザーが自分の既存または新規に作成したアカウントをプラットフォームへ接続すると
・彼らはあなたのサイト(あなたのプラットフォームのredirect_uriとして設定されたURL)へリダイレクトされる

正常に接続するために、URLを渡す
・付与されたscope
・state値(提供されている場合)
・認証コード
https://[提供者が予め設定したリダイレクトURL]?scope=read_write&code={AUTHORIZATION_CODE}

承認がユーザーによって拒否された場合でも、ユーザーはサイトにリダイレクトされますが、URLに承認コードの代わりにエラーが含まれている
https://[提供者が予め設定したリダイレクトURL]?error=access_denied&error_description=The%20user%20denied%20your%20request

ステップ4:Stripeからユーザーの認証情報を取得する


エラーが発生しなかったと仮定すると
・最後のステップは、提供されたcodeを使用してaccess_token_urlエンドポイントにPOSTリクエストを送信し、ユーザーのStripe認証情報を取得することだ
$ curl https://connect.stripe.com/oauth/token \
 -d client_secret=sk_test_xxxx \
 -d code="{AUTHORIZATION_CODE}" \
 -d grant_type=authorization_code

ライブまたはテストアクセストークンを返却するかどうかに応じて、ライブまたはテスト用の秘密のAPIキーを使用してリクエストを行う
・Stripeはユーザーの認証資格情報を含む応答を返す
{
 "token_type": "bearer",
 "stripe_publishable_key": "{PUBLISHABLE_KEY}",
 "scope": "read_write",
 "livemode": false,
 "stripe_user_id": "{ACCOUNT_ID}",
 "refresh_token": "{REFRESH_TOKEN}",
 "access_token": "{ACCESS_TOKEN}"
}

問題があった場合は、代わりにエラーを返す
{
 "error": "invalid_grant",
 "error_description": "Authorization code does not exist: {AUTHORIZATION_CODE}"
}

これで終わりだ!
・これで、ユーザーはプラットフォームに接続された

 データベースにstripe_user_idを格納する
・これは新しいアカウントのStripeアカウントIDだ
・この値を使用して、 Stripe-Accountヘッダーのリクエストに渡すことで、接続アカウントとして認証する。(ここで返された秘密鍵で認証することも可能だが、代わりにアカウントIDのみを保管し使用する方が安全だ)

アプリケーションでは、これらの手順を単純化するために専用のOAuthクライアントライブラリを使用することを検討することをお勧めする
・あなたの言語やフレームワークのためのOAuthライブラリを見つけるために、あなたはOAuthウェブサイト上のクライアントライブラリのリストを参照することができる

refresh_tokenを使用して、本番用のclient_id用のテストアクセストークンを生成したり、アクセストークンをロールバックしたりできる
・この最初のPOSTリクエストの後でしか取得できないため、この値も保持する必要がある

受け取ったアカウントIDを保管してくれ
・プラットフォームは、ユーザーに代わってリクエストを実行するためにこの情報を必要とする

週間人気ページランキング / 3-22 → 3-28
順位 ページタイトル抜粋 アクセス数
1 YouTube | 動画サービス(課金販売できるプラットフォーム) 7
2 その他エントリー(Stripe) カテゴリー 4
2 EMVレベル1 / EMVレベル2 / EMVCo とは? 4
2 Off-session Payments with Payment Intents / Payment Intents を使用したオフセッション支払 4
3 支払い 3
3 クレジットカード決済 | 課金 3
3 QA(Stripe) カテゴリー 3
3 Stripe Q15。PaymentIntent でエラー。カード番号に不備があります。 | QA(Stripe) 3
4 EMVCo | クレジットカード仕様(仕様) 2
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 2
4 Stripe エラー(Stripe) カテゴリー 2
4 資金決済に関する法律(資金決済法)とは?/(1)前払式支払手段 /(2)資金移動業 2
4 プリペイドカード | カード 2
4 Stripe Q60. Checkout\SessionオブジェクトとPaymentIntentオブジェクトの関係性は1対1ですか? | QA(Stripe) 2
4 QRコード決済 | 課金 2
4 Stripe Q48。「Checkout\Session - server」「Charge」「PaymentIntent」の使い分け方 | QA(Stripe) 2
4 振込 | 送金 2
5 Stripe Q11。テストAPIで、実際のカード番号を入力したらどうなりますか? | QA(Stripe) 1
5 Vプリカとは?/ 特徴 1
5 ICクレジットカード | クレジットカード仕様(仕様) 1
2024/3/29 1:01 更新
指定期間人気ページランキング / 2020-5-28 → 2024-3-28
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2006
2 EMVCo | クレジットカード仕様(仕様) 1252
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 938
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 898
5 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 876
6 クレジットカード決済 | 課金 875
7 決済用語 853
8 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 822
9 Omise | 「支払」機能を有する決済系サービス(決済サービス) 762
10 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 755
11 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 736
12 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 733
13 EMVレベル1 / EMVレベル2 / EMVCo とは? 710
14 YouTube | 動画サービス(課金販売できるプラットフォーム) 646
15 プリペイドカード | カード 636
16 EPUB | ファイルフォーマット(電子書籍) 585
17 サブスクリプション | 課金 563
18 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 542
19 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 536
20 ファンティア | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 482
2024/3/29 1:01 更新