デバイス上のアプリのトラブルシューティング
デバイス上のアプリに関する既知の問題の解決方法をご紹介します。
アプリが Stripe にアップロードされないのはなぜですか?
APK が大きすぎる場合や、アップロードのインターネット速度が遅すぎる場合は、Files API を使用して APK をアップロードするときにタイムアウトエラーが発生することがあります。Stripe は、サーバーに 45 秒のタイムアウトを適用しており、アプリがその時間内にアップロードされない場合にエラーを生成します。この問題を解決するには、より快適なインターネット環境を備えたサーバー (AWS EC2 インスタンス、別の VPS など) に APK をアップロードして、そこから Stripe にアップロードします。お使いのサーバーと Stripe サーバー間のネットワーク接続は、家庭またはオフィスから ISP 経由で Stripe に接続するよりはるかに高速です。
サンドボックス承認済みアプリの本番環境での承認を得るため再送信する必要がありますか?
サンドボックスでアプリの承認を取得し、そのアプリを本番環境で使用する場合は、承認のために再度送信する必要があります。アプリの審査プロセスは、サンドボックスと本番環境の両方で同じです。自動承認を受けるには、必ず同じ APK をアップロードしてください。
アプリからデバイス管理者設定画面にアクセスできないのはなぜですか?
デフォルトでは、デバイスユーザーは、画面の左端からスワイプし、設定をタップすることで管理者設定にアクセスできます。この方法は、デフォルトの起動アプリがサードパーティーアプリの場合は使用できません。
stripe://settings/
URI を使用して管理者設定にディープリンクし、アクティビティー またはフラグメントで以下のコードを使用することで、アプリから URI を起動できます。DevKit でデバイスの言語を更新できないのはなぜですか?
DevKit のリーダーアプリでは現在、デバイスの言語を更新することはできません。デバイスの言語は、Android 設定アプリから変更できます。次のように
adb
を使用して、Android 設定アプリを起動してください。$ adb shell am start -a android.settings.SETTINGS
Stripe デバイスで Android 設定の起動やディープリンクができないのはなぜですか?
セキュリティと信頼性の理由から、Stripe は、本番環境の Stripe デバイスで Android 設定アプリをブロックします。
Stripe Reader S700 で複数のアプリを実行できますか?
Stripe Reader S700 は複数のアプリの実行をサポートしていますが、アプリランチャーは提供されていません。アプリを切り替えられるようにするには、アプリ内に機能を構築する必要があります。アプリをデプロイする際に
default_
を指定すると、デバイスが更新を確認するときと決済後にアプリが起動するように設定できます。ダッシュボードを使用して、1 つのデバイスに複数のアプリを設定することはできません。kiosk_ application Stripe デバイスにウェブアプリをデプロイできますか?
ウェブアプリをパッケージ化して、Stripe デバイスで実行できます。Android との互換性を確保するためにウェブアプリを変更し、Android アプリケーションパッケージ (APK) を生成するには、Cordova などのフレームワークを使用します。その後、Stripe ダッシュボードで APK をアップロードできます。
フレームワークは Stripe や Android Terminal SDK を認識しないため、ウェブアプリと SDK の間に JavaScript ブリッジを作成して JavaScript からコマンドを送信する必要があります。
また、サーバー主導型の実装を使用して支払いを回収することもできます。この場合、Terminal ハンドオフクライアントライブラリや JavaScript ブリッジを使用する必要はありません。この実装により、Stripe はすべての支払い回収コマンドとデバイスとの通信を処理できます。
アプリが頻繁に再起動するのはなぜですか?
Stripe Terminal のカードリーダーは、クラッシュが発生するとデフォルトのアプリを再起動します。この動作が示すことは、本番環境と DevKit デバイスで異なります。
本番環境: アプリを本番環境デバイスのデフォルトのアプリとして設定する場合、クラッシュが発生するとアプリが自動的に再起動します。初期化中にアプリがクラッシュすると (例: データベース移行時の欠落や破損など)、デバイスがクラッシュループに入ることがあります。
DevKit: Stripe 決済アプリを DevKit デバイスのデフォルトのアプリとして設定する場合、アプリはデバイスのキューに入れられ、その後プライマリーアプリになります。アプリがクラッシュすると、代わりに Stripe 決済アプリが再起動します。
大量のラインアイテムのある支払いを処理すると、アプリがクラッシュするのはなぜですか?
大量のラインアイテムのある支払いを処理しようとしたときにアプリがクラッシュする場合、問題はメモリにある可能性があります。Android OS は、アクティビティーの状態を保存する際、プロセス間 (IPC) ごとに送信されるデータを 500 KB に制限しています。アプリのクラッシュを防ぐために、データをデータベースなどに保存することができます。
デプロイしたアプリでバグが見つかった場合はどうすればいいですか?
すでにデプロイされているアプリでバグが見つかった場合は、アプリ内で問題を修正し、新しいバージョンをアップロードしてからアプリをデプロイします。
本番環境のリーダーでアプリのログを確認するにはどうすればよいですか?
Stripe は、本番環境のリーダーのログを公開しません。Stripe では、可観測性を Sentry の実装に依存しています。
POS アプリを DevKit にサイドロードし、支払い取引を正常に完了しました。取引の完了後に POS アプリが開始されないのはなぜですか?
デバイスアプリ用に設定された Stripe リーダーでは、取引の完了後に優先キオスクアプリが起動します。DevKit では、デバイスをデプロイグループに含める場合にのみ優先キオスクアプリが設定されます。
DevKit デバイスで設定するキオスクアプリを指定するには、次のようにします。
- DevKit 専用のデプロイグループにアプリを提出します。これにより、アプリの審査をスキップすることができます。
- DevKit を対象とするデプロイグループにアプリバージョンをデプロイします。