コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
Ask AI
アカウントを作成
サインイン
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
開発者向けのツール
始める
支払い
財務の自動化
始める
支払い
財務の自動化
プラットフォームおよびマーケットプレイス
資金管理
概要
バージョン管理
変更ログ
API バージョンのアップグレード
SDK バージョンをアップグレードする
開発者向けのツール
SDK
    概要
    サーバー側 SDK
    モバイルの SDK
    iOS SDK
    Android SDK
    React Native SDK
    ウェブの SDK
    ES Module Stripe.js
    React Stripe.js
    Terminal SDK
    iOS SDK
    Android SDK
    React Native SDK
    コミュニティー
    コミュニティ SDK
    モバイル移行
    iOS SDK 24 に移行
    Android SDK 21 に移行
API
テスト
ワークベンチ
イベントの送信先
ワークフロー
Stripe CLI
Stripe Shell
開発者ダッシュボード
エージェントツールキット
Stripe health alertsLLM を使用した構築Visual Studio Code をご利用の場合ファイルのアップロード
セキュリティ
セキュリティ
Stripe を拡張する
Stripe Apps
Stripe のコネクター
パートナー
Partner Ecosystem
パートナー認定
ホーム開発者向けのツールSDKs

注

このページはまだ日本語ではご利用いただけません。より多くの言語で文書が閲覧できるように現在取り組んでいます。準備が整い次第、翻訳版を提供いたしますので、もう少しお待ちください。

React Stripe.js リファレンス

Stripe.js および Stripe Elements の React コンポーネントについてご紹介します。

ページをコピー

コードを見る

React Stripe.js がどのように機能するかを確認したり、開発に参加したりする場合、GitHub でプロジェクトをご確認ください。

React Stripe.js は、Stripe Elements を囲むシンラッパーです。これにより、あらゆる React アプリに Elements を追加できるようになります。

Stripe.js リファレンスでは、Elements のカスタマイズの詳細がすべて記載されています。

Elements を任意の Stripe プロダクトとともに使用することで、オンライン支払いを回収できます。お客様のビジネスに適した導入パスについては、Stripe のドキュメントをご覧ください。

注

このリファレンスでは、React Stripe.js API のすべてについて説明しています。実践しながら学ぶことを希望される場合は、支払いの受け付けに関するドキュメント、またはサンプル実装をご覧ください。

はじめに

このガイドは、React の基本的な実践知識があること、また、React プロジェクトがすでに設定されていることを前提としています。React を初めて使用する場合は、先に進む前に React のクイックスタートガイドをお読みになることをお勧めします。

設定

npm パブリックレジストリから React Stripe.js と Stripe.js ローダーをインストールします。

Command Line
npm install --save @stripe/react-stripe-js @stripe/stripe-js

決済プロバイダー

CheckoutProvider プロバイダーにより、Element コンポーネントの使用が可能になり、ネストされたあらゆるコンポーネント内の Stripe オブジェクトにアクセスできるようになります。React アプリのルートに CheckoutProvider プロバイダーをレンダリングし、必要な場所でいつでも使用できるようにします。

CheckoutProvider を使用するには、公開可能キーを使用して @stripe/stripe-js から loadStripe を呼び出します。loadStripe 関数は、Stripe.js スクリプトを非同期で読み込み、Stripe オブジェクトを初期化します。返された Promise を CheckoutProvider に渡します。

See Create a Checkout Session for an example of what your endpoint might look like.

index.js
import {CheckoutProvider} from '@stripe/react-stripe-js'; import {loadStripe} from '@stripe/stripe-js'; // Make sure to call `loadStripe` outside of a component’s render to avoid // recreating the `Stripe` object on every render. const stripePromise = loadStripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const fetchClientSecret = () => { return fetch('/create-checkout-session', {method: 'POST'}) .then((response) => response.json()) .then((json) => json.checkoutSessionClientSecret) }; export default function App() { return ( <CheckoutProvider stripe={stripePromise} options={{fetchClientSecret}}> <CheckoutForm /> </CheckoutProvider> ); }
プロパティ説明

stripe

required Stripe | null | Promise<Stripe | null>

Stripe オブジェクト または Stripe オブジェクトに解決される Promise。Stripe オブジェクトの初期化には、Stripe.js ラッパーモジュールを使用することをお勧めします。このプロパティは、一度設定すると変更できません。

サーバ側の初回のレンダリングを実行している場合や、静的なサイトを生成している場合には、null または null に解決する Promise を渡すこともできます。

options

required Object

CheckoutProvider configuration options. See available options. You must provide the fetchClientSecret function that returns the client secret of the created Checkout Session. See Create a Checkout Session for an example.

Element コンポーネント

Element コンポーネントを使用すると、React アプリで支払い情報を安全に収集し、決済ページの任意の場所に Elements を配置できます。外観をカスタマイズすることもできます。

個々の Element コンポーネントを CheckoutProvider ツリー内にマウントできます。1 つの <CheckoutProvider> には、各タイプの Element を 1 つだけマウントできます。

CheckoutForm.js
import {PaymentElement} from '@stripe/react-stripe-js'; const CheckoutForm = () => { return ( <form> <PaymentElement /> <button>Submit</button> </form> ); }; export default CheckoutForm;
プロパティ説明

options

optional Object

Element 構成オプションを含むオブジェクト。Payment Element の使用可能なオプションをご覧ください。

onBlur

optional () => void

Element がフォーカスを失うとトリガーされます。

onChange

optional (event: Object) => void

この Element によって公開されるデータが変更されたときにトリガーされます。

詳細については、Stripe.js リファレンスをご覧ください。

onEscape

optional (event: Object) => void

Element 内でエスケープキーが押されるとトリガーされます。

詳細については、Stripe.js リファレンスをご覧ください。

onFocus

optional () => void

Element がフォーカスを受けるとトリガーされます。

onLoaderror

optional (event: Object) => void

Element の読み込みが失敗したときにトリガーされます。

詳細については、Stripe.js リファレンスをご覧ください。

onLoaderStart

optional (event: Object) => void

loader UI が DOM にマウントされ、表示する準備が整ったときにトリガーされます。

これらのイベントは、payment Elements と address Elements からのみ受信します。

詳細については、Stripe.js リファレンスをご覧ください。

onReady

optional (element: Element) => void

Element が完全にレンダリングされ、必須の element.focus() 呼び出しを受け付けられるようになるとトリガーされます。基盤となる Element インスタンスへの参照を使用して呼び出されます。

使用可能な Element コンポーネント

決済ページの情報を収集するために、数種類の Elements を使用できます。使用可能な Elements は次のとおりです。

コンポーネント用途
AddressElement236 を超える地域形式に対応して住所の詳細を収集します。詳細については、Address Element のドキュメントをご覧ください。
ExpressCheckoutElementApple Pay、Google Pay、Link、PayPal といった支払いボタンを 1 つ以上使用して、カードまたはウォレットによる決済を受け付けられます。詳細については、Express Checkout Element のドキュメントをご覧ください。
PaymentElement世界中から 25 を超える決済手段の支払いの詳細を収集します。詳細については、Payment Element のドキュメントを参照してください。

useCheckout hook

useCheckout(): CheckoutContextValue | null

コンポーネントで useCheckout フックを使用して、Checkout セッションからのデータとそれを更新するメソッドを含む Checkout オブジェクトを取得します。

CheckoutForm.js
import {useCheckout, PaymentElement} from '@stripe/react-stripe-js'; const CheckoutForm = () => { const checkout = useCheckout(); const handleSubmit = async (event) => { // We don't want to let default form submission happen here, // which would refresh the page. event.preventDefault(); const result = await checkout.confirm(); if (result.type === 'error') { // Show error to your customer (for example, payment details incomplete) console.log(result.error.message); } else { // Your customer will be redirected to your `return_url`. For some payment // methods like iDEAL, your customer will be redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } }; return ( <form onSubmit={handleSubmit}> <PaymentElement /> <button>Submit</button> </form> ) }; export default CheckoutForm;

カスタマイズとスタイリング

iframe を使用する理由

iframe の使用により、Element のスタイリングの難易度は高くなりますが、支払いデータを安全に処理する負担を Stripe に任せられるだけでなく、お客様のサイトの業界規制へのコンプライアンスも維持することができます。

各 Element は iframe にマウントされるため、既存のスタイルやコンポーネントのフレームワークではその Element が動作しない可能性があります。それでも、サイトのデザインに合わせて Elements を設定できます。Elements のカスタマイズは、イベントへの応答と appearance オプションによる Elements の設定で構成されます。各 Element のレイアウトに一貫性をもたせながら、色、フォント、枠線、パディングなどを変更することができます。

顧客の場所
サイズ
テーマ
レイアウト
Google Pay または Apple Pay ウォレットのいずれかが関連付けられた有効カードがある場合、このデモでは対応するウォレットのみが表示されます。

次のステップ

React Stripe.js および Elements との連携を Checkout Sessions API で構築します。

  • 支払いを受け付ける
  • Express Checkout Element を追加する
  • Elements Appearance API について
  • Stripe.js リファレンス
このページはお役に立ちましたか。
はいいいえ
お困りのことがございましたら 、サポートにお問い合わせください。
早期アクセスプログラムにご参加ください。
変更ログをご覧ください。
ご不明な点がございましたら、お問い合わせください。
LLM ですか?llms.txt を読んでください。
Powered by Markdoc