実装方法を設定する
Stripe Terminal SDK またはサーバー主導型の組み込みを設定して、対面決済の受け付けを開始できるようにします。
よくある間違い
For smart readers, such as the BBPOS WisePOS E reader, Stripe Reader S700, and Verifone readers, we recommend using the server-driven integration instead of the JavaScript SDK.
The server-driven integration uses the Stripe API instead of relying on local network communications to collect payments. See our platform comparison to help you choose the best platform for your needs.
Terminal JavaScript SDK の要件
JavaScript SDK を使用してスマートリーダーを導入する場合、ネットワークの設定がネットワーク要件を満たしていることを確認してください。
JavaScript SDK の使用を開始する際に必要なステップは、以下の 3 つです。
- チェックアウトページに SDK およびクライアントライブラリをインストールする
- ウェブアプリケーションとバックエンドで接続トークンのエンドポイントを設定する
- ウェブアプリケーションで SDK を初期化する
メモ
お客様のウェブアプリケーションを JavaScript SDK に組み込むと、それをモバイルブラウザで実行できます。ただし、モバイルデバイスがリーダーと同じローカルネットワークに接続され、そのネットワーク上のデバイスが互いに直接通信できる状態である必要があります。
SDK およびクライアントライブラリーをインストールするクライアント側サーバー側
クライアント側
作業を開始するには、このスクリプトを決済ページに含めます。最新のリーダーソフトウェアとの互換性を保つため、このスクリプトは常に https://js.stripe.com から直接読み込む必要があります。スクリプトをバンドルに含めたり、そのコピーを自身でホストすることがないようにしてください。これを行うと、組み込みが警告なく破損することがあります。
<script src="https://js.stripe.com/terminal/v1/"></script>
Terminal JS SDK をモジュールとして使用する
Stripe では、npm パッケージも用意しています。これを使用すると、Terminal JS SDK をモジュールとして読み込み、使用できます。詳細については、GitHub のプロジェクトをご覧ください。
メモ
JavaScript SDK のベータ版からの移行の詳細については、Stripe Terminal ベータの移行ガイドをご覧ください。
サーバー側
アプリケーションから Stripe API にアクセスするには、Stripe の公式ライブラリーを使用します。
ConnectionToken エンドポイントを設定するサーバー側クライアント側
サーバー側
リーダーに接続するには、バックエンドからご自身の Stripe アカウントに、リーダーを使用するための SDK 権限を付与する必要があります。それには、ConnectionToken (接続トークン) から secret (シークレット) を提供します。バックエンドは信頼できるクライアントに対してのみ、接続トークンを作成するようにする必要があります。
サーバー側の ConnectionToken からシークレットを取得してクライアント側に渡します。
注意
ConnectionToken の secret により、お客様は任意の Stripe Terminal リーダーに接続して、Stripe アカウントで支払いを受け取ることができます。必ず、接続トークンの作成に使用するエンドポイントを認証し、クロスサイトリクエストフォージェリ (CSRF) から保護してください。
クライアント側
SDK にこのエンドポイントへのアクセスを許可するには、バックエンドから ConnectionToken をリクエストし、ConnectionToken オブジェクトから secret を返す関数をウェブアプリケーションで作成します。
async function fetchConnectionToken() { // Your backend should call /v1/terminal/connection_tokens and return the JSON response from Stripe const response = await fetch('https://{{YOUR_BACKEND_URL}}/connection_token', { method: "POST" }); const data = await response.json(); return data.secret; }
この関数は、SDK で Stripe またはリーダーの認証が必要になるたびに呼び出されます。また、リーダーへの接続に新しい接続トークンが必要な場合 (アプリがリーダーから切断されたときなど) にも呼び出されます。SDK がバックエンドから新しい接続トークンを取得できない場合、リーダーへの接続は失敗し、サーバーからエラーが返されます。
注意
接続トークンは、キャッシュに入れたり、ハードコード化しないでください。接続トークンのライフサイクルは、SDK によって管理されます。
SDK を初期化するクライアント側
SDK によって利用可能になった StripeTerminal オブジェクトは、リーダーを検出し、リーダーに接続し、支払いを作成する汎用インターフェイスを提供します。お使いの JavaScript アプリケーションで StripeTerminal インスタンスを初期化するには、ステップ 2 で実装した ConnectionToken 関数を指定します。
また、リーダーからの意図しない切断を処理するための関数、onUnexpectedReaderDisconnect も指定する必要があります。この関数では、アプリからユーザーにリーダーが切断されたことを知らせる必要があります。リーダーへの再接続を試行する方法を含めることもできます。詳細については、接続切断に対処するをご覧ください。
const terminal = StripeTerminal.create({ onFetchConnectionToken: fetchConnectionToken, onUnexpectedReaderDisconnect: unexpectedDisconnect, }); function unexpectedDisconnect() { // You might want to display UI to notify the user and start re-discovering readers }
SDK の更新
Stripe は定期的に、新機能、バグ修正、セキュリティー更新を含む更新をリリースしています。SDK は、新しいバージョンが利用可能になり次第すぐに更新してください。現在利用可能な SDK は以下のとおりです。
- Stripe Terminal Android SDK
- Stripe Terminal iOS SDK
- Stripe Terminal JavaScript SDK
- Stripe Terminal React Native SDK
サポートされるブラウザ
Stripe Terminal JavaScript SDK は、主なブラウザの最新バージョンをすべてサポートしています。以下をサポートします。
- Windows の Edge。
- Firefox (デスクトッププラットフォーム)
- Chrome および Safari (あらゆるプラットフォーム)
- Android ネイティブブラウザ (Android 4.4 以降)
特定のブラウザで、Stripe Terminal JavaScript SDK に問題がある場合は、support-terminal@stripe.com にメールでお問い合わせください。
注意
注: React Native での Stripe Terminal JavaScript SDK の使用はサポートされていません。React Native を使用してモバイルアプリに Stripe Terminal を構築するにはStripe Terminal React Native SDK を使用します。