実装方法を設定する
Stripe Terminal SDK またはサーバー主導型の組み込みを設定して、対面決済の受け付けを開始できるようにします。
Android SDK の使用を開始するには、以下の 4 つのステップが必要です。
- Install the SDK in your app.
- Configure your app.
- Set up the connection token endpoint in your app and backend.
- Initialize the SDK in your app.
SDK をインストールするクライアント側
注意
アプリのライフサイクル全体で状態を保存したり、維持したりする際には Room が使用されるため、SDK はサポートライブラリーとの互換性がなくなりました。ご使用のアプリが AndroidX に移行されていることを確認してください。
SDK をインストールするには、app/build.gradle ファイルの dependencies
ブロックに stripeterminal
を追加します。
次に、SDK は Java 8 を使用しているため、対象の Java バージョンとして (さらに build.
にも) これを指定する必要があります。
注
SDK の最新リリースおよび過去バージョンの詳細については、GitHub の Releases ページをご覧ください。新しいリリースの公開時に通知を受け取るには、リポジトリーのリリースを確認してください。
Android SDK の以前のベータバージョンからの移行については、Stripe Terminal ベータの移行ガイドで詳細をご確認ください。
アプリを設定するクライアント側
ACCESS_
権限を有効化する必要があります。Bluetooth リーダーを接続するには、Bluetooth の権限も有効にする必要があります。以下に示すように、適切な権限をマニフェストに追加してください。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
Terminal オブジェクトを初期化する前に以下のチェックを追加して、アプリで ACCESS_
権限が有効になっていることを確認します。
また、SDK が機能するには位置情報へのアクセス許可が必要になるため、アプリのユーザーがその許可を付与していることを確認してください。これを行うには、アプリで onRequestPermissionsResult
メソッドをオーバーライドして、アクセス許可の結果を確認します。
注
支払いに関連する不正使用のリスクを減らし、不審請求の申請を最小限に抑えるため、Stripe は支払いの発生場所を把握する必要があります。SDK が Android デバイスの場所を特定できない場合には、位置情報へのアクセスが復元されるまで支払いは無効になります。
ConnectionToken エンドポイントを設定するサーバー側クライアント側
サーバー側
リーダーに接続するには、バックエンドからご自身の Stripe アカウントに、リーダーを使用するための SDK 権限を付与する必要があります。それには、ConnectionToken (接続トークン) から secret (シークレット) を提供します。バックエンドは信頼できるクライアントに対してのみ、接続トークンを作成するようにする必要があります。
Obtain the secret from the ConnectionToken
on your server and pass it to the client side.
注意
The secret
from the ConnectionToken
lets you connect to any Stripe Terminal reader and take payments with your Stripe account. Be sure to authenticate the endpoint for creating connection tokens and protect it from cross-site request forgery (CSRF).
クライアント側
To give the SDK access to this endpoint, implement the ConnectionTokenProvider interface in your app, which defines a single function that requests a ConnectionToken
from your backend.
この関数は、SDK で Stripe またはリーダーの認証が必要になるたびに呼び出されます。また、リーダーへの接続に新しい接続トークンが必要な場合 (アプリがリーダーから切断されたときなど) にも呼び出されます。SDK がバックエンドから新しい接続トークンを取得できない場合、リーダーへの接続は失敗し、サーバーからエラーが返されます。
注意
接続トークンは、キャッシュに入れたり、ハードコード化しないでください。接続トークンのライフサイクルは、SDK によって管理されます。
証明書のピンニング
ほとんどの場合、アプリケーションで証明書のピンニングを設定する必要はありません。アプリケーションにこの機能が必要な場合は、証明書のピンニングに関するドキュメントをご覧ください。
SDK を初期化するクライアント側
Android SDK はライフサイクル対応です。メモリーリークを防止し、長期にわたる Terminal SDK プロセスの適切なクリーンアップを行うため、アプリケーションには、TerminalApplicationDelegate
を使用して SDK にライフサイクルイベントを通知する Application
サブクラスを含める必要があります。
このサブクラスは、次のアクティビティーライフサイクルのコールバックを登録します。
The Terminal class made available by the Stripe Terminal SDK exposes a generic interface for discovering readers, connecting to a reader, and performing operations on the reader, such as displaying cart details, collecting payments, and saving cards for future use.
To get started, provide the current application context, the ConnectionTokenProvider implemented in Step 3, and a TerminalListener object. You can use this listener to handle events such as payment and connection status updates from the SDK.
注意
1.
より前のバージョンからアップグレードする場合、TerminalLifecycleObserver
および Application
クラスが必須になりました。
SDK の更新
Stripe は定期的に、新機能、バグ修正、セキュリティー更新を含む更新をリリースしています。SDK は、新しいバージョンが利用可能になり次第すぐに更新してください。現在利用可能な SDK は以下のとおりです。
- Stripe Terminal Android SDK
- Stripe Terminal iOS SDK
- Stripe Terminal JavaScript SDK
- Stripe Terminal React Native SDK