Q51-2.疑問事項を整理してみました / A

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

カテゴリー: QA  閲覧数:315 配信日:2019-08-02 09:16


Q51-2.疑問事項を整理してみました


疑問事項を整理してみました / Re: Connect Standard アカウント連結後の返り値で、"refresh_token”も保存した方が良いですか?
2019/8/2
回答内容が私には難しかったため、疑問事項を改めて整理してみました。


主に下記(「Connect OAuth」へのアクセス)に関する疑問です。

--------------------------------------------------------

リクエスト部分
▼index.html
<a href="https://connect.stripe.com/oauth/authorize?response_type=code&client_id=ca_「プラットフォーム提供者である親アカウント」の「クライアント ID」&scope=read_write&redirect_uri=https://xxxx/redirect.php ">redirect_uri指定した登録</a>


リダイレクト部分
▼redirect.php
define('CLIENT_ID', 'ca_xxxx'); //「プラットフォーム提供者である親アカウント」の「クライアント ID」
define('STRIPE_SECRET', 'sk_live_xxxx'); //「プラットフォーム提供者である親アカウント」の「本番シークレットキー」
define('TOKEN_URI', 'https://connect.stripe.com/oauth/token' );
define('AUTHORIZE_URI', 'https://connect.stripe.com/oauth/authorize' );
if (isset($_GET['code'])) {
 $code = $_GET['code'];
 $token_request_body = array(
    'client_secret' => STRIPE_SECRET,
    'grant_type' => 'authorization_code',
    'client_id' => CLIENT_ID,
    'code' => $code,
 );
 $ch = curl_init(TOKEN_URI);
 curl_setopt_array($ch, [
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_POST => true,
   CURLOPT_POSTFIELDS => http_build_query($token_request_body),
 ]);
  $respCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  $resp = json_decode(curl_exec($ch), true);
  curl_close($ch);
}


保存すべき結果対象
$resp['stripe_user_id']を保存
$resp['refresh_token']を保存

--------------------------------------------------------

< 上記処理の流れ >

処理1. ユーザーをプラットフォームに接続するため、https://connect.stripe.com/oauth/authorize エンドポイントへアクセス。結果をGETで受け取る

処理2.承認コードをアクセストークンに変換するため、https://connect.stripe.com/oauth/token エンドポイントへPOST送信
--------------------------------------------------------

< 通常の使用方法 >
・上記「処理1」+「処理2」後、$resp['stripe_user_id']を保存
・以降のリクエストでは「Stripe-Account header」利用
https://stripe.com/docs/connect/authentication#stripe-account-header

--------------------------------------------------------
Q1.上記index.htmlへのアクセスを2回実行した場合の意味は? そもそも(間違って)複数回実行しても問題ありませんか?
・2回目戻り値である$resp['stripe_user_id']は不変でした
・2回目戻り値である$resp['refresh_token']は変更されていました
・下記に該当しますか? 「新たなTokenにロール」が難しいのですが、新しいToken発行して紐づけたぐらいの意味ですか?
>新たなTokenにロールした場合は、過去のTokenはご利用いただけなくなります


Q2.(利用期限がない)access_tokenを再発行するケースの具体例について
・例えばどのような場面でaccess_tokenを再発行するのですか?
・下記で「いつでもユーザーによって無効にされる可能性があります」と掲載されていますが、ユーザーがaccess_tokenを無効にするケースとして具体的にはどのような場面が挙げられますか?
https://stripe.com/docs/connect/oauth-reference#post-token-request


Q3.>しかし、access tokenにて認証を行うことをご検討いただいている場合や
・(Account headerを利用せず、)「access tokenにて認証を行う」とは、具体的にどのようなケースが該当しますか?


Q4.>新たなaccess tokenに更新する際に"refresh_token"が必要となります
・「新たなaccess tokenに更新」とは、具体的にどのようなケースが該当しますか?
・「access token」の再発行とは異なる??

A


> Q1.上記index.htmlへのアクセスを2回実行した場合の意味は? そもそも(間違って)複数回実行しても問題ありませんか?
OAuthに関しまして、以下をご参考に処理いただけますと幸いです。
redirect_uriには、子アカウントがOAuthを完了した後に遷移させたいWebサイトページを指定します。

子アカウントが連携に成功しますと、redirect_uriに指定したURLに遷移されますが、その際にURLには以下のような情報が含まれます。
・scope  (scope=read_write)
・state の値
・Authorization code

御社はこの "authorization code"を取り出し、Stripe のaccess_token_urlエンドポイントへ以下のPOSTリクエストを行います。
curl https://connect.stripe.com/oauth/token \
 -d client_secret= Platform Secret API KEY \
 -d code="{AUTHORIZATION_CODE}" \
 -d grant_type=authorization_code

Stripeからのレスポンスには"Refresh Token"と"Access Token"が含まれますが、これは一度きりのみ発行されます。
一連の流れはこちらに記載がございます:https://stripe.com/docs/connect/standard-accounts#integrating-oauth


>Q2.(利用期限がない)access_tokenを再発行するケースの具体例について
・例えばどのような場面でaccess_tokenを再発行するのですか?
"access_token"は子アカウントのSecret Key として利用できますので、もし、"access_token"を保存される場合は、セキュリティの理由により定期的に新たな"access_token"に更新することをお勧めしております。

"access_token"、"refresh_token"、 や "stripe_publishable_key" は歴史的な理由などで存在しますが、基本的には、”stripe_user_id”のみの保存で大丈夫です。"access_token" は子アカウントの Secret Key として利用でき、"stripe_publishable_key"で子アカウントに代わってトークン作成などを行うことができます。
しかし、"Stripe-Account header" を利用することで、漏れてはならない 子アカウントのAPI キーを複数保存する負担が減ります。

>・下記で「いつでもユーザーによって無効にされる可能性があります」と掲載されていますが、ユーザーがaccess_tokenを無効にするケースとして具体的にはどのような場面が挙げられますか?
Standardアカウントの場合、各ユーザーは自身のダッシュボードにアクセスする権限がございます。そのため、子アカウント自身にてダッシュボードよりプラットフォームとの連携を解除した場合などには、無効になります。


Q3.>しかし、access tokenにて認証を行うことをご検討いただいている場合や
・(Account headerを利用せず、)「access tokenにて認証を行う」とは、具体的にどのようなケースが該当しますか?
上記のとおり、"access_token"は子アカウントのSecret API keyとして利用可能です。


Q4.>新たなaccess tokenに更新する際に"refresh_token"が必要となります
・「新たなaccess tokenに更新」とは、具体的にどのようなケースが該当しますか?
・「access token」の再発行とは異なる??
上記と重複しますが、"access_token"は子アカウントのSecret Key として利用できますので、もし、"access_token"を保存される場合は、セキュリティの理由により定期的に新たな"access_token"に更新(再発行)することをお勧めしております。

週間人気ページランキング / 5-2 → 5-8
順位 ページタイトル抜粋 アクセス数
1 クレジットカード決済 | 課金 7
2 EPUB | ファイルフォーマット(電子書籍) 6
3 SHOWROOM | ライブ配信サービス(課金販売できるプラットフォーム) 5
4 ログイン 2
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 2
4 Enty | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 2
4 Stripe Q73.CheckoutのSessionオブジェクトをcreateする際、'payment_intent_data'内の'metadata'として渡したデータを、webhookで受け取る件について | QA(Stripe) 2
4 SCA | セキュリティ 2
4 クリエイター支援プラットフォーム(課金販売できるプラットフォーム) カテゴリー 2
5 Square (スクエア)とは?/ 特徴 / Link 1
5 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 1
5 EMVレベル1 / EMVレベル2 / EMVCo とは? 1
5 Stripe。Stripeアカウントを持っていない人でもクレジットカード決済が出来る | その他エントリー(Stripe) 1
5 Stripe Q22。「新規Customerオブジェクト作成」と「'source'パラメータ指定タイミング」について | QA(Stripe) 1
5 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 1
5 3Dセキュア | セキュリティ 1
5 Creating PaymentIntents / PaymentIntentsを作成する 1
5 動画収益(β)とは?/ アイテム収益とは? 1
5 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 1
5 普通送金 | 為替取引 1
2024/5/9 1:02 更新
指定期間人気ページランキング / 2020-5-28 → 2024-5-8
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2011
2 EMVCo | クレジットカード仕様(仕様) 1272
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 945
4 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 904
5 クレジットカード決済 | 課金 888
6 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 879
7 決済用語 855
8 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 824
9 Omise | 「支払」機能を有する決済系サービス(決済サービス) 769
10 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 761
11 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 743
12 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 739
13 EMVレベル1 / EMVレベル2 / EMVCo とは? 729
14 YouTube | 動画サービス(課金販売できるプラットフォーム) 678
15 プリペイドカード | カード 646
16 EPUB | ファイルフォーマット(電子書籍) 594
17 サブスクリプション | 課金 563
18 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 545
19 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 543
20 ファンティア | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 482
2024/5/9 1:02 更新