Stripe Q51.Connect Standard アカウント連結後の返り値で、"refresh_token”も保存した方が良いですか?

StripeQA

目次一覧

 状態:-  閲覧数:743  投稿日:2019-08-01  更新日:2019-08-03  
Q51 / A

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


Q51 / A

 閲覧数:294 投稿日:2019-08-01 更新日:2019-08-02 

Q51


Connect Standard アカウント連結後の返り値で、"refresh_token”も保存した方が良いですか?
2019/8/1
'stripe_user_id'は固定値なので取得した方が良いのは分かるのですが、"refresh_token”も保存した方が良いですか?

「https://stripe.com/docs/connect/standard-accounts」で、 「"refresh_token”は、この最初のPOSTリクエストの後でしか取得できない」と掲載されていますが、何回か試すと毎回異なる値が返ってきます。

Q1.返り値に関して、'stripe_user_id'だけではなく"refresh_token"も保存した方が良いですか?

Q2."refresh_token"に毎回異なる値が返ってくるのは正常な状態ですか? それともリクエストの仕方がおかしい??
・リクエストする度に、"refresh_token"の値は更新されて、以前の"refresh_token"の値は使用できなくなる、ということですか?

Q3.Stripeのaccess_tokenの有効期限はありますか?

Q4.ざっくり言うと下記認識で合っていますか?
・access_tokenには有効期限があり、refresh_tokenには有効期限がない
・refresh_tokenを再発行すると、以前のrefresh_tokenは使用不可となる
・refresh_tokenを使用して、access_tokenを生成できる

A


> Q1.返り値に関して、'stripe_user_id'だけではなく"refresh_token"も保存した方が良いですか?
Standardアカウント上のリクエストはAccount headerを利用して、子アカウントへ認証いただくことが可能ですので"refresh_token"は必要になりません。しかし、access tokenにて認証を行うことをご検討いただいている場合や、新たなaccess tokenに更新する際に"refresh_token"が必要となりますので保存いただくことがよろしいかと存じます。こちらのドキュメントが参考になりますと幸いです:https://stripe.com/docs/connect/standard-accounts#token-request

> Q2."refresh_token"に毎回異なる値が返ってくるのは正常な状態ですか? それともリクエストの仕方がおかしい??
・リクエストする度に、"refresh_token"の値は更新されて、以前の"refresh_token"の値は使用できなくなる、ということですか?
各子アカウントへ付与される"refresh_token"はPOSTリクエストした際にのみ発行されます。 どのようにリクエストをされておりますでしょうか?
もし、新たなTokenにロールした場合は、過去のTokenはご利用いただけなくなります。

> Q3.Stripeのaccess_tokenの有効期限はありますか?
ございません

> Q4.ざっくり言うと下記認識で合っていますか?
・access_tokenには有効期限があり、refresh_tokenには有効期限がない
access_tokenには有効期限はございません。

>・refresh_tokenを再発行すると、以前のrefresh_tokenは使用不可となる
>・refresh_tokenを使用して、access_tokenを生成できる
refresh_tokenは、access_tokenを再発行するためにご利用いただけます。access_tokenを再発行されますと、以前のものはご利用いただけなくなります。

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

 閲覧数:305 投稿日:2019-08-02 更新日:2019-08-03 

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"に更新(再発行)することをお勧めしております。


Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには?

Stripe Q52.Checkout\Sessionで1回限りの決済終了した際、添付メール自動送信することはできますか?

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



類似度ページランキング
順位 ページタイトル抜粋
1 Stripe Q51.Connect Standard アカウント連結後の返り値で、"refresh_token”も保存した方が良いですか? 71
2 Stripe Q44。Standard アカウント連結後の返り値で、保存すべき値について 51
3 Stripe Q65.Connect Standard で連結されているStripeアカウントの違いについて 42
4 Stripe Q52.Checkout\Sessionで1回限りの決済終了した際、添付メール自動送信することはできますか? 41
5 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? 40
6 Stripe Q66.Webhookエンドポイントが、"connect"内容も含むかどうかを確認するためにはどうすれば良いですか? 40
7 Stripe Q49。 Connect 「Standardアカウント」で、自身の子アカウントでも商品販売する場合、被る不利益はありますか? 39
8 Stripe Q53.Checkout\Sessionの1回限りの支払いで、決済完了したユーザにだけページ表示させたい 39
9 Stripe Q56. 作成したCheckout\Sessionオブジェクトが破棄されるタイミングは? 38
10 Stripe Q21。新規顧客作成時に新規ソースオブジェクトを添付したいのですが、No such token: src_xxxxとなります 37
11 Stripe Q29。日本で、Connect Customアカウント を導入している事例について 37
12 Stripe Q59.Connect Standardアカウントで、親子アカウント情報を併用したい場合は、setApiKeyでStripeオブジェクト情報をその都度上書きしていくしかないのですか? 37
13 Stripe Q68.WebhookはPUT送信しているのですか? 37
14 Stripe Q11。テストAPIで、実際のカード番号を入力したらどうなりますか? 36
15 Stripe Connect Customアカウント の検討 36
16 日本で、Connect Standardアカウント を導入している(と思われる)事例 36
17 Stripe Q61. 「複数の1が複数のwebhookを停止しています」はどういう意味ですか? 36
18 Stripe Q60. Checkout\SessionオブジェクトとPaymentIntentオブジェクトの関係性は1対1ですか? 35
19 Stripe Q71.CheckoutSessionで、success_urlに指定したURLでzipダウンロードすると、success_urlへ遷移しない 35
20 Stripe Q10。Checkout の Simple で、「data-zip-code="true"」追加した場合について 35
2024/3/02 5:17 更新
週間人気ページランキング / 2-24 → 3-1
順位 ページタイトル抜粋 アクセス数
1 Omise | 「支払」機能を有する決済系サービス(決済サービス) 12
2 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 7
3 EPUB | ファイルフォーマット(電子書籍) 6
3 クレジットカード決済 | 課金 6
3 YouTube | 動画サービス(課金販売できるプラットフォーム) 6
3 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 6
3 EMVレベル1 / EMVレベル2 / EMVCo とは? 6
4 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 5
5 サブスクリプション | 課金 4
5 Google Pay | 「支払、出金」機能を有する決済系サービス表(決済サービス) 4
5 EMVCo | クレジットカード仕様(仕様) 4
6 Stripe エラー(Stripe) カテゴリー 3
6 プリペイドカード | カード 3
6 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 3
7 Stripe Q73.CheckoutのSessionオブジェクトをcreateする際、'payment_intent_data'内の'metadata'として渡したデータを、webhookで受け取る件について | QA(Stripe) 2
7 Payment Request APIとは? / Payment Request API だけで支払い処理が完結するわけではない / Payment Request API の役割 2
7 Something went wrong / You might be having a network connection problem, or the payment provider cannot be reached at the moment. | Stripe エラー(Stripe) 2
7 「支払」と「送金」の違い | 違い 2
8 決済用語 1
8 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 1
2024/3/2 1:01 更新