リーダーに接続する
アプリケーションを Stripe Terminal リーダーに接続します。
注
まだリーダーを選択していない場合は、利用可能な Terminal リーダーを比較して、ニーズに最適なリーダーを選択してください。
Bluetooth 接続型リーダーは Bluetooth LE デバイスです。支払い詳細を収集しますが、Stripe との通信にはペアリングされたモバイルデバイスを使用します。
Bluetooth を使用してアプリを Terminal リーダーに接続するには、次のステップを実行します。
注意
リーダーとペアリングするために、モバイルデバイス設定を使用しないでください。デバイス設定を使用してリーダーをペアリングすると、リーダーをアプリに接続できなくなります。
リーダーを検出するクライアント側
まず、リーダーの電源が入っていて、近くにあることを確認してください。
次に、アプリから BluetoothDiscoveryConfiguration
を使用して、discoverReaders
メソッドで近くにある Bluetooth 接続型リーダーを検索します。
Bluetooth スキャン
Bluetooth スキャンは、近くにあるすべてのリーダーを検索して、検出したリーダーのリストをアプリに返します。検出プロセスが続くと、SDK は近くのリーダーの最新リストを使用して onUpdateDiscoveredReaders
メソッドを呼び出し続けます。
検出プロセスでは、検出中に Terminal の connectionStatus
が ConnectionStatus.
に移行します。
Bluetooth スキャン検出方法では、一定時間でスキャンをタイムアウトするよう設定できます。これを使用して、バッテリーの残量を管理したり、デバイスが見つからないときにエラーメッセージを表示したりできます。
ユーザーが自身のリーダーを認識できるようにするため、自動更新される検出リーダーリストを、シリアル番号やラベルと一緒にモバイルアプリに表示することをお勧めします。
リーダーに接続するクライアント側
検出されたリーダーに接続するには、アプリから connectReader
メソッドを呼び出します。
接続の際、場所にリーダーを登録する必要があります。このためには、接続時に locationId
を関連する Location ID に設定し、BluetoothConnectionConfiguration
を作成して使用します。
スタンバイモードを使用する
アプリで省エネを目的として disconnectReader
を呼び出すプログラムは使用しないでください。リーダーは、スタンバイモードを使用して効率的に電源を管理します。
リーダーの連結の解除を処理する
リーダーの連結解除が、アプリとリーダーの間で発生することがあります。たとえば、リーダーが範囲外であるか、バッテリーが切れた場合、アプリからリーダーが連結解除されることがあります。リーダーの電源をオフにすると、テスト中に予期しない切断をシミュレーションできます。
MobileReaderListener
には、onDisconnect
コールバックが含まれています。これは、リーダーの接続が切断された理由を示す DisconnectReason
をアプリケーションに提供します。
リーダーの接続が切断されると、デフォルトで自動再接続が試行されます。そのプロセスの間、リーダーのステータスを伝える通知をアプリに表示することをお勧めします。
自動再接続中にアプリに通知を表示するには、次の操作を行います。
MobileReaderListener
にリーダーの再接続コールバックを実装します。MobileReaderListener
をBluetoothConnectionConfiguration
に渡します。- onReaderReconnectStarted をアプリに送信する際、SDK はリーダーの接続が失われ、再接続が進行中であることを伝えるメッセージを表示します。
Cancelable
オブジェクトを使用して、いつでも再接続の試行を停止できます。
onReaderReconnectSucceeded
を送信して再接続が成功したことを示す際、SDK は接続が復元され、通常の動作を続行できることを通知するメッセージを表示します。- リーダーに接続できず、
onReaderReconnectFailed
とonDisconnect
の両方を送信した場合、SDK は予期しない切断が発生したことを示すメッセージを表示します。
リーダーの切断にご自身で対処するには、次の手順を実行します。
- 接続中は
autoReconnectOnUnexpectedDisconnect
をfalse
に設定します。 - 切断コールバックを処理して、リーダーが予期せず切断されたことをユーザーに通知するメッセージをアプリに表示し、リーダーの検出と接続を開始します。
接続されたリーダーを再起動する
Stripe リーダー M2 および BBPOS WisePad 3 は、24 時間使用すると自動的に再起動します。ただし、rebootReader
API を使用すると、リーダーを強制的に再起動して、24 時間のタイマーをリセットできます。このアクションの後、リーダーは SDK から切断され、再起動されます。自動再接続を使用している場合、SDK はリーダーとの接続を復元しようとします。
アプリケーションの開始時の自動再接続
Stripe Terminal は、アプリケーションの起動時にリーダーに自動的に再接続しません。代わりに、リーダー ID を保存し、起動時に既知のリーダーへの接続を行うことで、再接続フローを構築できます。
- リーダーに正常に接続したら、シリアル番号を Shared Preferences API (Android) などの永続的なデータ格納場所に保存します。
- アプリが起動したら、その永続的なデータ格納場所に保存されているシリアル番号を確認します。確認できた場合は、
discoverReaders
メソッドを呼び出して、アプリケーションがそのリーダーを再度見つけられるようにします。 - 保存されたシリアル番号が検出されたリーダーのいずれかと一致する場合は、
discoverReaders
の呼び出しから返された一致するリーダーオブジェクトを使用して、そのリーダーへの接続を試してください。以前に接続したリーダーが見つからない場合は、検出プロセスを停止します。
検出および接続プロセス中に何らかの UI を表示して、自動再接続が実行されていることを示します。
リーダーソフトウェアを更新するクライアント側
アプリケーションは、モバイルリーダーを更新して以下を適用する必要があります。
- カードネットワークとカード発行会社の要件に対して最新の状態に保つための地域設定
- セキュリティ更新
必要な更新では、リーダーに接続するとインストールが開始されます。更新が完了するまでリーダーを使用できません。
注
更新をインストールするには、リーダーのバッテリー残量が 50% 以上なければなりません。
必要な更新
リーダーで緊急の更新が利用可能になると、システムの MobileReaderListener
が ReaderSoftwareUpdate
と onStartInstallingUpdate
を受信します。
ReaderSoftwareUpdate
は、更新に関する重要情報 (更新の合計推定時間を示す durationEstimate
など) を提供します。
インストールプロセスでは、更新がリーダーにインストールされる間、Terminal の connectionStatus
が ConnectionStatus.
に移行します。
アプリケーションからユーザーに更新をインストール中であることを伝え、また UI に進捗状況を表示する必要があります。接続に通常よりも時間がかかる理由を明確にします。
必須の更新のプロセスが失敗した場合、Stripe は onFinishInstallingUpdate
を使用して MobileReaderListener
にエラーを通知します。必須の更新に失敗した後は、以下の条件が満たされない限り、リーダーに再接続することはできません。
- リーダーは、過去 30 日間の場所に対応する最新のソフトウェアバージョンを実行します。
- Android SDK バージョンが
3.
以降でです。5. 0
条件が満たされると、更新が未完了であっても接続プロセスは成功します。Stripe は、更新が正常にインストールされるまで、次回そのリーダーに接続したときに、必要な更新を再試行します。
Cancelable
オブジェクトを使用すると、必要な更新をキャンセルできますが、キャンセルした場合もリーダーに接続できなくなります。増分のみの更新はキャンセルできません。
オプションの更新
任意の更新は、指定した日付まで先延ばしすることが可能で、その後必須になります。リーダーの接続中、処理が行われていないときは SDK が随時 MobileReaderListener
を通じて任意の更新を通知します。任意の更新が提供されている場合、アプリケーションの MobileReaderListener
は、以下の更新情報を含む ReaderSoftwareUpdate
オブジェクトとともに onReportAvailableUpdate
コールバックを受信します。
- 更新にかかる推定時間 (
durationEstimate
) - 更新が必要になる日付 (
requiredAt
)
アプリケーションで、更新が提供されていることをユーザーに伝え、必要に応じて更新に進むための画面を表示します。
onReportAvailableUpdate
ですでに通知されている更新を続けるには、Terminal.
をコールします。
利用可能な更新は、リーダーオブジェクトにも reader.
として保存されます。
更新中は、顧客がアプリのページから移動できないようにするとともに、更新が完了するまでリーダーを受信範囲内に置き、電源を入れたままにしておくように指示します。また、更新の進捗状況を視覚的に示すインジケーターを、顧客に表示することもお勧めします。MobileReaderListener
は、onReportReaderSoftwareUpdateProgress
メソッドで更新の進捗状況を報告します。
オプションの更新の requiredAt
の期日を過ぎると、次回リーダーが接続されたときに更新がインストールされます。
アプリケーションがリーダーに適用可能な各種の更新タイプを処理できるようにするには、リーダーの更新をテストする をご覧ください。
次のステップ
アプリケーションをリーダーに接続しました。次に、Stripe Terminal の最初の支払いを回収します。
BBPOS および Chipper™ の名称およびロゴは BBPOS Limited の米国および/またはその他の国における商標または登録商標です。Verifone® の名称およびロゴは Verifone の米国および/またはその他の国における商標または登録商標のいずれかです。これらの商標の使用は BBPOS または Verifone による何らかの承認を意味するものではありません。