Authorize.net
支払いゲートウェイとして使用している e コマース サイトがあります。
最近、支払い確認を送信し、後でもう一度送信をクリックするという問題に遭遇しました。これにより、商品が二重になったり、支払いが二重になったりします。
考慮すべき事項:
- 支払い確認ページは、ユーザーが支払いを送信する前に読み込まれる PRG (Post-Redirect-Get) の結果です。
- リクエストの各部分に実際に作用する機能が用意されています (これについては以下の説明を参照してください)。
- この状況は、Authorize.net トランザクションに通常よりも時間がかかる場合にのみ適用されます。
- これはまだ本番環境ではありません。この動作を防ぐために、この新しい機能をテストする方法を探しているだけです。
防止ピース
次のプロセスに従う複数ステップのチェックアウト フォームがあります。
- 製品の選択
- 支払入力
- 注文の確認/支払いの送信
- レシート
プロセスの各ステップでは、サービスへの呼び出しが実行され、ユーザーが現在の「注文」を持っているかどうかがチェックされstarted
ます。processing
complete
注文が の場合started
、チェックアウト フローの最初のページにリダイレクトされます。注文が の場合、processing
2 秒ごとに ajax リクエストを実行して注文のステータスを確認するプレースホルダー ページにリダイレクトします。注文が完了すると、receipt
ページにリダイレクトされます。注文が の場合、すぐにページにcomplete
リダイレクトされます。receipt
問題
この機能は実際には処理トランザクションに時間がかかる場合にのみ有効であるため、いくつかの理由でテストに問題が発生します。
Authorize.net
私たちの開発サーバーは遅く、ページがアプリケーションによってレンダリングされる前に、リクエストに応答する可能性が高くなります。- PHP 関数を使用して応答をダミーで作成する
sleep()
と、スレッドがブロックされて何も実行されなくなり、[1] と同じ状況になります。
私たちが望むこと
Authorize.net
いくつかのパラメーターを介してリクエストへの応答を遅くする方法があるかどうか、またはこれを達成する別の方法があるかどうかはわかりません。あらゆるアイデアを歓迎します!