カテゴリー:
documentation
閲覧数:328 配信日:2019-04-06 08:07
docs
・Authentication with Connect
・Connectによる認証
・Connectの使用時にあなたのユーザーとして認証する方法を学んでくれ
・そうすれば、彼ら(あなたのユーザー)に代わって任意のAPIアクションを実行できる
接続アカウントの代わりにStripe APIを使用するときにリクエストを認証する方法は2つある
Stripe-Accountヘッダーと接続アカウントのIDを使用する
・可能であれば、 Stripe-Accountヘッダー方法を使用する必要がある
・それはより簡単でより安全だ
接続アカウントのAPIキーを使用する
・2番目のアプローチはレガシ互換性のためにサポートされているが、一般的に新しいアプリケーションでは使用すべきではない
・どちらの方法でも、アカウントをプラットフォームに接続するときに、接続したアカウントの情報(IDキーまたはAPIキー)を保存する必要がある
Stripe-Accountヘッダーを介した認証
1つ目の、推奨される認証オプション
・あなたの(プラットフォームアカウントの)秘密鍵を使用し、リクエストが行われている接続アカウントを識別するStripe-Accountヘッダーを渡すことだ
・このcurl リクエストは、接続アカウントの代わりに料金の払い戻しを行う
$ curl https://api.stripe.com/v1/charges/{{CHARGE_ID}}/refunds \
-u {{PLATFORM_SECRET_KEY}}: \
-H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \
-d amount=1000
-u {{PLATFORM_SECRET_KEY}}: \
-H "Stripe-Account: {{CONNECTED_STRIPE_ACCOUNT_ID}}" \
-d amount=1000
・Stripe-Accountヘッダー認証アプローチは、URLにStripeアカウントIDを含むすべてのAPIリクエストに含まれている
$ curl https://api.stripe.com/v1/accounts/{{CONNECTED_STRIPE_ACCOUNT_ID}} \
-u {{PLATFORM_SECRET_KEY}}:
-u {{PLATFORM_SECRET_KEY}}:
・Stripeのライブラリはすべて、リクエストごとにこの認証方式をサポートしている
\Stripe\Stripe::setApiKey("{{PLATFORM_SECRET_KEY}}");
\Stripe\Customer::create(
["email" => "person@example.edu"],
["stripe_account" => "{{CONNECTED_STRIPE_ACCOUNT_ID}}"]
);
// アカウントを取得するには、パラメータとしてIDが必要だ
\Stripe\Account::retrieve("{{CONNECTED_STRIPE_ACCOUNT_ID}}");
APIキーによる認証
2番目の認証オプション
・接続されたアカウントの秘密鍵と公開可能な鍵を使用してAPI呼び出しを行う
・プラットフォームが接続アカウントの秘密鍵を受信する方法は、接続方法によって異なる
Standardアカウントの場合
・OAuthフローによって提供されるaccess_tokenだ
カスタムアカウントの場合
・create account API呼び出しによって返されるkeys[secret]プロパティにある
APIキーを保存する
・Stripeは最初の接続時にのみプラットフォームのアカウントのAPIキーを提供する
・後で接続アカウントのAPIキーを取得することはできない
・そのため、オンボーディングプロセスの一部としてそれらを必ず保存してくれ
このコードは、この2番目の認証方法を使用して上記と同じ返金要求を実行する
$ curl https://api.stripe.com/v1/charges/{{CHARGE_ID}}/refunds \
-u {{CONNECTED_ACCOUNT_SECRET_KEY}}: \
-d amount=1000
-u {{CONNECTED_ACCOUNT_SECRET_KEY}}: \
-d amount=1000
この方法を使用している場合は、APIキーをグローバルに設定するのではなく、リクエストごとに認証を実行することをお勧めする
・Stripeのライブラリはすべて、リクエストごとにこの認証方式をサポートしている
// Not recommended: setting global API key state
\Stripe\Stripe::setApiKey("{{CONNECTED_ACCOUNT_SECRET_KEY}}");
\Stripe\Customer::create(
["email" => "person@example.edu"]
);
// Recommended: sending API key with every request
\Stripe\Customer::create(
["email" => "person@example.edu"],
["api_key" => "{{CONNECTED_ACCOUNT_SECRET_KEY}}"] // account's access token from the Connect flow
);