Adobe Commerce のトラブルシューティング
このガイドでは、Stripe Connector for Adobe Commerce をトラブルシューティングする方法をご紹介します。
インストールの問題
Composer を使用しているときに、インストールプロセスで最も発生しやすい問題は、以下のエラーの発生です。
Composer package not found: Could not find a matching version of package stripe/stripe-payments
この問題が発生した場合は、以下のステップを実行してください。
- Adobe マーケットプレイスで、モジュールを注文します。
- 入力した Adobe Commerce API キーに誤りがあった場合は、
~/.composer/auth.json
にあるファイルを削除します。 - 再度 Composer コマンドを実行します。ユーザー名とパスワードの入力が必要な場合があります。必ず、注文したときに使用したアカウントの Adobe Commerce API キーを入力してください。Adobe Commerce から認証キーを取得できます。
アップグレードとキャッシュの問題
モジュールをアップグレードしても何らかの原因で新たな変更が表示されない場合は、一連のディレクトリーを削除することで Adobe Commerce のキャッシュを手動でクリアできます。Adobe Commerce 2.3、および Adobe Commerce 2.4 のそれぞれで削除が必要なディレクトリーについては、Adobe Commerce の公式ドキュメントをご覧ください。
対象のディレクトリーを削除してから、以下のコマンドを実行します。
php bin/magento setup:upgrade php bin/magento cache:flush
本番環境で稼働している場合は、静的アセットをコンパイルしてデプロイする必要があります。
php bin/magento setup:di:compile php bin/magento setup:static-content:deploy
Varnish を実行している場合は、var/cache/* ファイルを削除した後に Varnish も再起動する必要があります。一部のブラウザーでは Adobe Commerce のリクエストもキャッシュされています。キャッシュの問題が続く場合は、別のブラウザーで試してみてください。
決済時に決済手段が表示されない
決済時に支払い方法が表示されない場合は、いくつかの原因が考えられます。
- Stripe PHP ライブラリが存在しないか、以前のバージョンを使用している場合があります。この依存関係は、インストール手順のステップ 3 に従ってインストールできます。
- 古いバージョンの Stripe PHP ライブラリーを使用している別の Stripe モジュールがインストールされている場合があります。他の有効な Stripe モジュールはすべて、無効にするかアンインストールしてください。
- Stripe API キーの設定が正しく行われていません。
- 一部の特定の国や通貨に対して利用できる支払い方法を制限している場合があります。
Apple Pay または Google Pay が表示されない
支払いリクエストボタンを設定しても表示されない場合には、以下の手順を試しください。
- Apple Pay と Google Pay が決済手段設定で有効になっていることを確認する。
- Apple Pay の場合は、iOS 10 以上を実行している iPhone の Safari を使用してください。
- Google Pay の場合は、Google アカウントでログインして、Chrome Desktop または Chrome Mobile を使用してください。
- ウォレットに少なくとも 1 枚のカードが存在することを確認します。
- iOS では、設定 > ウォレット > Apple Pay に移動してカードを追加できます。
- Chrome では、設定 > 自動入力 > お支払い方法 > 新しいクレジットカードを追加と移動してカードを追加できます。
- iOS デバイスが Apple Pay に対応していることを確認します。
- Android デバイスが Google Pay に対応していることを確認します。
- Confirm that your domain is registered and verified.
- Web サイトのドメインの先頭が
www
である場合は、ドメインがexample.com
ではなく、www.example.com
であることを確認してください。 - Web サイトは、有効な TLS 1.2 証明書を使用し、HTTPS を介して配信する必要があります。これはブラウザーまたは SSL Labs から確認してください。
- HTTPS ページに安全でないイメージ、CSS、JavaScript が読み込まれていないことを確認します。これは、ブラウザーの URL バーで南京錠のマークをクリックして確認できます。
- モジュールの設定セクションでウォレットボタンが有効化されていることを確認してください。
- デフォルトのフォールバックの国を設定していることを確認します (Stores (ストア) > 設定 > General (一般) > Country Options (国のオプション) > Default Country (デフォルトの国))。
- 古い Stripe API キーを使用していないことを確認してください。Apple Pay には、先頭が
pk_live_
またはpk_test_
で始まる最新の API キーが必要です。公開可能キーは、ダッシュボードの開発者セクションで更新できます。 - OneStepCheckout モジュールを使用している場合は、OSC モジュールを追加設定して、ゲスト顧客が請求先住所を送信する場合の支払いフォームを更新することも必要な場合があります。ただし、大半の状況ではこの必要はありません。
決済時に Apple Pay が表示され、商品ページに表示されない場合は、さらに以下のような原因が考えられます。
- Adobe Commerce 管理でゲストチェックアウトが無効化されている。
- Web サイトで提供している商品ページに有効な TLS 1.2 証明書がない。
- 使用するテーマで、カートに追加ボタンのテンプレートが上書きされている。
app/code/StripeIntegration/Payments/view/frontend/templates/express/product_button.phtml
にテキストを追加してみてください。商品ページに何も変化がない場合は、テーマをカスタマイズして 2 つのテンプレートをまとめて組み込みます。 - Stripe.js を初期化しているときに JavaScript エラーが発生する。この場合は、ブラウザーのコンソールで Stripe.js に関連する JavaScript エラーがないかを確認してください。
保留中の注文が滞っている場合
注文を作成すると、初期ステータスは Pending Payment
になります。これは、顧客の銀行による支払いのオーソリがまだ保留中であることを示します。リダイレクトベースの決済手段の場合はすべて、オーソリが発生すると、 Stripe は Webhook を使用してお客様のウェブサイトに通知します。注文が Pending Payment
から Processing
に変化しない場合は、Webhook が欠落しているか、誤っている可能性があります。
Webhooks 設定にアクセスして、ストア URL が指定された Webhook エンドポイントが存在するかどうかを確認します。存在しない場合は、Magento のルートディレクトリーから次のコマンドを実行して手動で作成することができます。
bin/magento stripe:webhooks:configure
Webhook エンドポイントがすでに存在する場合は、エラー率を確認して、失敗した Webhook を特定します。 Webhook エンドポイントをクリックすると、エラーメッセージが表示されます。サーバー設定の誤りが原因ではない Webhook の問題の解決についてサポートが必要な場合は、Stripe サポートに連絡して、発生したエラーの詳細をお知らせください。
Webhook の問題を修正したら、ウェブサイトに正常に配信されなかったcharge.succeeded
イベントを再送信する必要があります。モジュールには再送信のコマンドが 3 つ用意されており、単一のイベント、特定の範囲のイベント、特定の日付範囲のイベントを再送信できます。
bin/magento stripe:webhooks:process-event [-f|--force] <event_id> bin/magento stripe:webhooks:process-events-range <from_event_id> <to_event_id> bin/magento stripe:webhooks:process-events-date-range <from_date> [<to_date>]
注
完全な日時 (2021-12-21 11:22:33+0200
) を設定することも、英語のテキストで記述した日時 (last Monday
) を使用することもできます。明示的に指定しない限り、Magento のデフォルトのタイムゾーンが使用されます。
サポートされるすべての日付形式については、strtotime でご確認ください。
Stripe ダッシュボードの開発者セクションですべての失敗した charge.succeeded
イベントのリストを取得し、上記のコマンドを使用して再送信するイベントを決定できます。
エラーのログ記録とサーバー側のエラー (HTTP 500)
Adobe Commerce はアプリケーションのランタイムに発生したあらゆるエラーと例外を var/log
ディレクトリーに記録します。これらのエラーは、以下の 2 つのファイルにあります。
var/log/system.log var/log/exception.log
SSH にアクセスできる場合は、以下のコマンドでエラーメッセージをフィルタリングできます。
grep -i Stripe var/log/system.log
コンソールでは発生するエラーをリアルタイムで (または特定のページを更新したときに) 表示できます。エラーをモニタリングするには、以下のコマンドを実行して、エラーログを監視します。
tail -f var/log/*
シェルにアクセスできない場合は、このファイルをダウンロードして、テキストエディターで Stripe のエラーを探すことができます。