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

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

カテゴリー: QA  閲覧数:347 配信日: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"に更新(再発行)することをお勧めしております。

週間人気ページランキング / 11-16 → 11-22
順位 ページタイトル抜粋 アクセス数
1 EMVレベル1 / EMVレベル2 / EMVCo とは? 9
2 Stripe Q15。PaymentIntent でエラー。カード番号に不備があります。 | QA(Stripe) 4
3 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 3
3 Stripe Connect > | documentation(Stripe) 3
4 Stripe Q37。PaymentIntentで支払いを行った後、成功画面を表示させるためにはどうすれば良いですか? | QA(Stripe) 2
4 \Stripe\PaymentIntentオブジェクト / Stripe\PaymentMethodオブジェクト / \Stripe\Checkout\Sessionオブジェクト 2
4 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 2
4 Stripe Payments > PREPARING FOR SCA > Payment Intents | documentation(Stripe) 2
5 Stripe webhook 配信の問題 / 実際に受け取った警告メールの受信例 1
5 「Gumroad」は、決済サービス「PayPal」を利用したオンラインコンテンツ販売サービス | デジタルコンテンツ販売可能なサービス(課金販売できるプラットフォーム) 1
5 Stripe Q43。payouts スケジュールについて | QA(Stripe) 1
5 Payment Intents API | その他エントリー(Stripe) 1
5 質問履歴29 / A抜粋 / 感想 1
5 Google Pay | 「支払、出金」機能を有する決済系サービス表(決済サービス) 1
5 普通送金 | 為替取引 1
5 Yahoo!ウォレット | 「チャージ、支払、送金、出金」機能を有する決済系サービス(決済サービス) 1
5 note | 課金販売できるプラットフォーム 1
5 LINE LIVE | ライブ配信サービス(課金販売できるプラットフォーム) 1
5 クレジットカード導入に関する当初の考え / クレジットカード導入に関する現在の考え / 自分の経験に照らし合わせて考えてみると 1
5 EPUB3 | ファイルフォーマット(電子書籍) 1
2024/11/23 1:02 更新
指定期間人気ページランキング / 2020-5-28 → 2024-11-22
順位 ページタイトル抜粋 アクセス数
1 Stripeアカウントへログインする際、モバイル端末で受信したコード入力を求められる理由は? | その他エントリー(Stripe) 2022
2 EMVCo | クレジットカード仕様(仕様) 1330
3 Stripe Q13。決済成功時に、「請求に紐づけられたメールアドレス」に対して、メール送信したいのですが、 | QA(Stripe) 972
4 Twitch | ゲーム実況配信サービス(課金販売できるプラットフォーム) 939
5 Stripe Q16。PaymentIntentの支払いで郵便番号入力を求められる。Radar rules の ZIP code を無効にしているのに | QA(Stripe) 927
6 クレジットカード決済 | 課金 909
7 決済用語 878
8 Stripe Q50。 Connect 「Standardアカウント」で、自身に連結された子アカウントを、ダッシュボードから削除するには? | QA(Stripe) 847
9 EMVレベル1 / EMVレベル2 / EMVCo とは? 818
10 Stripe Q1。Stripeにおける個人事業主の定義 | QA(Stripe) 804
11 pixivFANBOX | クリエイター支援プラットフォーム(課金販売できるプラットフォーム) 795
12 Omise | 「支払」機能を有する決済系サービス(決済サービス) 784
13 Stripe Q31。ダッシュボードでの「支払い作成」の見方について | QA(Stripe) 749
14 YouTube | 動画サービス(課金販売できるプラットフォーム) 718
15 プリペイドカード | カード 649
16 EPUB | ファイルフォーマット(電子書籍) 613
17 Stripe Q74.「お客様のビジネスの詳細」とは何ですか? | Stripe 594
18 Stripeで"No such token: src"と表示されたら、最初にAPIキーを確認する | Stripe エラー(Stripe) 577
19 サブスクリプション | 課金 565
20 Stripe エラー(Stripe) カテゴリー 487
2024/11/23 1:02 更新