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

StripeQA

目次一覧

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

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


Q51 / A

 閲覧数:303 投稿日: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

 閲覧数:312 投稿日: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/4/27 9:25 更新
週間人気ページランキング / 4-20 → 4-26
順位 ページタイトル抜粋 アクセス数
1 YouTube | 動画サービス(課金販売できるプラットフォーム) 7
1 EMVCo | クレジットカード仕様(仕様) 7
2 EMVレベル1 / EMVレベル2 / EMVCo とは? 5
3 クレジットカード決済 | 課金 4
3 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 4
4 Squareは、デジタルコンテンツ(デジタル情報)の配信利用が認められないサービス | 「支払」機能を有する決済系サービス(決済サービス) 3
5 Stripe Q32。Webhook のエンドポイントから適切な値を返さなかったときの停止措置について | QA(Stripe) 2
5 「支払」と「送金」の違い | 違い 2
5 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 2
5 プリペイドカード | カード 2
5 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 2
6 Stripe webhook 配信の問題 / 実際に受け取った警告メールの受信例 1
6 Stripe webhook 配信の問題 | その他エントリー(Stripe) 1
6 Stripe。Stripeアカウントを持っていない人でもクレジットカード決済が出来る | その他エントリー(Stripe) 1
6 決済するためのクレジットカード情報をどこに紐づけるか、あるいはどこにも紐づけないか | 決済(Webサービスビジネス) 1
6 「支払、出金」機能を有する決済系サービス比較 1
6 StripeLinkサービス紹介 / 公式Help / サイト内DocLink 1
6 PaymentIntentで支払を実装する場合の選択肢 /「Payment Intents API」使用によるカードの支払確認方法は2種類 / PaymentMethodオブジェクトは歴史的経緯により3種類ある 1
6 ログイン後のナビゲーション選択肢 / URL一覧 / コンテンツの料金設定 1
6 投げ銭サービス(課金販売できるプラットフォーム) カテゴリー 1
2024/4/27 1:02 更新