サードパーティ支払いの非同期通知がコールバック アドレスに複数回通知します。前の通知リクエストがまだ処理されていないため、後続のリクエストが送信されるため、複数回の受信確認が発生します。解決方法
ringa_lee
支払いは、トランザクション番号、シリアル番号などの固有のIDに従って処理される必要があります。複数回の繰り返しを許可することは不可能です。
リクエストが来ると、まずDB内のレコードステータスを初期状態から中間状態に更新します 次にリクエストを処理し、中間状態を処理完了状態に更新します その後、サードパーティの非同期リクエストにメッセージを返します
気になるのは、短期間に複数回ということですが、短期間に何回?
たとえば、10 秒間に 5 ~ 10 回、コードを最適化することを検討する必要があります。なぜ 1 つのリクエストが 1 秒で処理されると、後続のリクエストは無視されます。
例えば、1秒間に5〜10回程度の単純な処理であれば、同時リクエストをキューに入れてシリアルリクエストに変えるだけで解決できます。
上記のことから、頻度がこれほど高い場合は、何か問題があるはずだと思います。サードパーティのプラットフォームを見つけてください。
プログラムが処理された後、サードパーティに成功を返します。そうでない場合、サードパーティは成功を受け取った後はそれ以上リクエストを行わず、IP は簡単にブロックされます。このような問題は第三者が見られる文書に書くべきです
支払いは、トランザクション番号、シリアル番号などの固有のIDに従って処理される必要があります。複数回の繰り返しを許可することは不可能です。
リクエストが来ると、まずDB内のレコードステータスを初期状態から中間状態に更新します
次にリクエストを処理し、中間状態を処理完了状態に更新します
その後、サードパーティの非同期リクエストにメッセージを返します
気になるのは、短期間に複数回ということですが、短期間に何回?
たとえば、10 秒間に 5 ~ 10 回、コードを最適化することを検討する必要があります。なぜ 1 つのリクエストが 1 秒で処理されると、後続のリクエストは無視されます。
例えば、1秒間に5〜10回程度の単純な処理であれば、同時リクエストをキューに入れてシリアルリクエストに変えるだけで解決できます。
上記のことから、頻度がこれほど高い場合は、何か問題があるはずだと思います。サードパーティのプラットフォームを見つけてください。
プログラムが処理された後、サードパーティに成功を返します。そうでない場合、サードパーティは成功を受け取った後はそれ以上リクエストを行わず、IP は簡単にブロックされます。このような問題は第三者が見られる文書に書くべきです