Easy Digital Downloads は、決済処理業者を通じて購入が正常に検証された後、支払いを自動的に完了としてマークするように設計されています。
PayPal の支払いが自動的に完了としてマークされない場合、通常は、いくつかの一般的な問題のいずれかが発生していることを意味します。
支払いが完了としてマークされるためには、Easy Digital Downloads は、購入を検証するために PayPal のような決済処理業者と通信できる必要があります。この通信が何らかの方法でブロックされたり改ざんされたりすると、購入が完了としてマークされず、ダウンロードリンクや購入レシートメールも配信されない結果になります。
支払いが「保留中」のままになる一般的な理由はいくつかあります。
- PayPal の Webhook システムが有効になっていないか、PayPal アカウントで正しく設定されていません
- リクエストをブロックするプラグインがインストールされています
- ウェブサイトが cURL を介してリモートリクエストを行うことができません
- IPN リクエストをブロックするルールが .htaccess ファイルにあります
- サイトのキャッシュが攻撃的すぎて、不適切な更新クエリが発生しています
- PayPal を使用している場合は HTTPS (SSL) が必要です
PayPal の設定
注文が正しく機能するためには、PayPal アカウントを接続する必要があります。接続されていないと、支払いは完了として設定されません。PayPal が ドキュメントに従って設定されていることを確認してください。
EDD 2.11 より前は、注文が正しく機能するために、PayPal Standard および PayPal Express ゲートウェイで IPN を設定する必要がありました。設定されていないと、支払いは完了として設定されません。IPN の設定は PayPal Standard と PayPal Express で若干異なります。使用しているバージョンのガイドを参照してください。
Stripe
Stripe でこの問題が発生する場合、チェックアウトプロセスに何かが干渉しており、EDD が Stripe から応答を受け取るのを妨げている兆候です。すべての購入でこの問題が発生している場合は、EDD 以外のすべてのプラグインを非アクティブ化して、問題が続くかどうかを確認してください。問題が続く場合は、問題が再発するまで各プラグインを 1 つずつ再度アクティブ化してください。この問題の調査に支援が必要な場合は、EDD サポートにお問い合わせください。
CloudFlare
CloudFlare は、ウェブサイトのパフォーマンスとセキュリティを向上させるのに役立つ人気のサービスです。時折、購入検証プロセスに競合を引き起こす可能性があります。
ウェブサイトで CloudFlare を使用しており、支払いが完了としてマークされない問題が発生している場合は、一時的に CloudFlare を無効にして、無効にしたときに支払いが正しく完了としてマークされるかどうかを確認してください。
チェックアウトページを Cloudflare のキャッシュから除外する必要がある場合があります。以下は、そのためのヘルプ記事の 1 つです。
https://support.cloudflare.com/hc/en-us/articles/200172316-How-do-I-exclude-a-specific-URL-from-CloudFlare-s-caching-
リモートリクエストの失敗: cURL 無効
ウェブホストで cURL やその他のリモート通信拡張機能が無効になっている場合、Easy Digital Downloads が PayPal と通信する能力に問題を引き起こす可能性があります。
このセクションを確認することで、これが潜在的な原因であるかどうかを確認できます:ダウンロード > システム情報
WP Remote Post: wp_remote_post() works
wp_remote_post() が機能しないと表示される場合は、ウェブホストに連絡して cURL を有効にするように依頼してください。
この問題が原因かどうかをさらに確認するには、[ダウンロード] > [レポート] > [ログ] > [支払いエラー] に移動し、次のようなエラーメッセージが記録されていないか確認してください。
{"errors":{"http_failure":["There are no HTTP transports available which can complete the requested request."]},"error_data":[]}
そのエラーは、サイトが PayPal と通信できないことを意味するため、支払いを検証できません。
競合するプラグイン
PayPal IPN が完全に機能していると確信しているにもかかわらず問題が解決しない場合は、Bad Behavior のような別のプラグインがインストールされていて、PayPal IPN をブロックしている可能性が非常に高いです。このようなスパム対策プラグインは通常、PayPal 通信をブロックします。これらのプラグインのいずれかがインストールされている場合は、無効にしてテスト購入を行い、支払いが完了としてマークされているか確認してください。
問題を引き起こすことが知られているプラグイン:
- オールインワンセキュリティ
- バッドビヘイビア
- コンプリートキャッシュ
- iThemes Security
- Wordfence Security
- W3 Total Cache
- WPスーパーキャッシュ
- WP-SpamShield
これらのプラグインのいずれかが有効になっている場合は、無効にしてからテスト購入を行ってください。プラグインが無効になった後に支払いが完了としてマークされる場合は、原因がわかります。
ただし、これらのプラグインのいずれかがインストールされているからといって、必ず問題が発生するとは限りません。これらのプラグインはすべて、Easy Digital Downloads と一緒に問題なく動作するように正常に構成できます。通常、問題はプラグイン内の 1 つまたは 2 つの特定の構成オプションの結果です。
サーバーによるブロック
サーバーの設定が IPN レスポンスをブロックすることがあります。以下に既知の問題を示します。
Strato
Strato はドイツのホストであり、PayPal に干渉するゲストブックセキュリティ設定があります。この設定をオフにする方法は次のとおりです。
- Strato カスタマーサービスにログインします。
- ホスティングパッケージの変更を選択します。
- 設定項目を選択します。
- サーバー側セキュリティを選択します。
- 「ゲストブックスパムフィルター」を無効にします。
クロスドメインHTTPリクエスト
HTTPトラフィックをHTTPSに強制するプラグインがあり、IPNリクエストがHTTPで受信された場合、それらは技術的に異なるドメインであるため拒否されます。IPNリクエストが拒否されていることが判明した場合は、すべてのリクエストで同じプロトコルを実行していることを確認してください。
