2026年5月20日
2026年5月20日
WooCommerceで決済が通らない場合の解決方法
はじめに
WooCommerceで「決済に失敗しました」「お支払いを処理できませんでした」などのエラーが発生する場合、SSL設定、APIキーの誤り、PHPバージョン、ゲートウェイの設定ミスが主な原因です。
症状・原因
よくある決済エラーと原因:
Your card was declined.→ カード会社による拒否(テストカード番号の使用を確認)SSL is required→ HTTPSが有効になっていないInvalid API Key→ Stripeなどのシークレットキーが間違っている- 決済画面でページが真っ白になる → プラグイン競合、PHPエラー
解決手順
ステップ1:SSLが正しく設定されているか確認する
# HTTPS が有効か確認
wp option get siteurl # https:// で始まっているか確認
wp option get home # https:// で始まっているか確認
# FORCE_SSL_ADMIN が設定されているか確認
wp config get FORCE_SSL_ADMIN
# SSL証明書の有効期限を確認
curl -vI https://example.com 2>&1 | grep -E "expire|SSL"
ステップ2:決済ゲートウェイの設定を確認する
WooCommerce → 設定 → 決済 → Stripe → 管理
- テストモード: テスト中はON、本番環境ではOFF
- テスト用公開可能キー: pk_test_... で始まるか確認
- テスト用シークレットキー: sk_test_... で始まるか確認
- 本番公開可能キー: pk_live_... で始まるか確認
- 本番シークレットキー: sk_live_... で始まるか確認
# Stripeキーの設定値を確認(WP-CLI)
wp option get woocommerce_stripe_settings --format=json | python3 -m json.tool | grep -E "test|live|key"
ステップ3:WooCommerceのデバッグログを有効化する
WooCommerce → 設定 → 詳細設定 → ログ
→ ログを有効化にチェック
# ログファイルを確認
ls wp-content/uploads/wc-logs/
tail -100 wp-content/uploads/wc-logs/stripe-*.log
# WP-CLIでデバッグログも確認
tail -50 wp-content/debug.log
ステップ4:テスト決済で動作確認する
Stripeのテスト用カード番号:
- 成功: 4242 4242 4242 4242 / 有効期限: 任意の未来の日付 / CVC: 任意の3桁
- 拒否(残高不足): 4000 0000 0000 9995
- 拒否(不正カード): 4000 0000 0000 0002
- 3Dセキュア要求: 4000 0025 0000 3155
ステップ5:プラグイン競合とPHPエラーを確認する
// wp-config.php — デバッグを有効化
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
# 他のプラグインを無効化してStripeのみで確認
wp plugin deactivate --all
wp plugin activate woocommerce woocommerce-gateway-stripe
# PHPバージョンを確認(Stripe SDK はPHP 7.4以上が必要)
php --version
wp eval "echo PHP_VERSION;"
注意事項
- 本番環境のAPIキー(
sk_live_)は絶対にコードにハードコードせず、WooCommerce の設定画面か環境変数で管理してください - テストモードのままで本番運用すると実際の決済が処理されません。本番公開前に必ずテストモードをOFFにしてください
- Stripe Webhookを設定している場合、サーバーのIPアドレスをStripeのダッシュボードで許可リストに追加してください
まとめ
決済エラーの原因調査は「WooCommerceログ確認 → APIキーの確認 → SSL確認 → テスト決済」の順で行います。Stripeのテストカード(4242 4242 4242 4242)で決済が通るか確認し、本番運用前にテストモードをOFFにしてください。