コンテンツにスキップ
アカウントを作成
または
サインイン
Stripe ドキュメントのロゴ
/
AI に質問する
アカウントを作成
サインイン
始める
支払い
売上
プラットフォームおよびマーケットプレイス
資金管理
開発者向けリソース
概要
バージョン管理
変更ログ
API バージョンのアップグレード
SDK バージョンをアップグレードする
Essentials
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
Visual Studio Code をご利用の場合
機能
ワークフロー
イベントの送信先
Stripe 健全性アラートファイルのアップロード
AI solutions
エージェントツールキット
Build with an LLM
セキュリティとプライバシー
セキュリティ
プライバシー
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 に渡します。

エンドポイントの例については、Checkout セッションを作成するをご覧ください。

index.jsx
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 設定オプションを使用します。利用可能なオプションをご覧ください。作成した Checkout Session セッションのクライアントシークレットを返す fetchClientSecret 関数を指定する必要があります。例については、Checkout セッションを作成するをご覧ください。

Element コンポーネント

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

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

CheckoutForm.jsx
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.jsx
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