サードパーティの支払いと同じように、テンプレート エンジンと Realex Payments を備えた PHP を使用しています。
したがって、HPP で 1 つの状況が発生します。
- トランザクションが成功した後、クライアント ブラウザがネットワークから切断される
- 支払いステータス情報を保存できません
- したがって、ステータス情報は、支払われた後も特定の注文に対して未払いのままです
誰かがこれに対する解決策を提案できますか?
サードパーティの支払いと同じように、テンプレート エンジンと Realex Payments を備えた PHP を使用しています。
したがって、HPP で 1 つの状況が発生します。
誰かがこれに対する解決策を提案できますか?
Realex Payments HPP は、これが起こらないように設計されています。
支払いが正常に完了すると、Realex サーバーはトランザクションの結果を含むメッセージを Web サイト サーバーに直接送信します。顧客のブラウザは関係ありません。トランザクションのステータスを常に把握できます。このメッセージは、Realex Payments 応答 URL に送信されます。
顧客がネットワークから切断された場合、2 つのシナリオがあります。
いずれの場合も、トランザクション後に Realex からメッセージを受け取ったら、顧客にメールを送信する必要があります。これはお客様にとって大きな安心感です。
また、顧客を HPP にリダイレクトする前に、必要なすべての情報を収集する必要があります。これは、ネットワークが失われ、顧客からそれ以上のデータを取得できなくなる可能性があるためです (顧客の住所や、注文)。
Realex がサイトに接続してメッセージを送信できないという 3 番目のシナリオがあります。数回再試行した後、オペレーション スタッフが直接ご連絡いたします。顧客には、詳細についてあなたに連絡するよう求める一般的なメッセージが表示されます。
トランザクション、コミット、およびロールバックを使用します。
「START TRANSACTION」は、COMMIT または ROLLBACK に入るまで、後続のすべての SQL を追跡します。
「COMMIT」は私たちのコードを永続的にします。
「ROLLBACK」は、「START TRANSACTION」を入力する前の時点まですべてを逆にします。
例えば
START TRANSACTION;
SELECT * FROM bank;
UPDATE bank SET amount = '25000' WHERE id ='23';
COMMIT;
ただし、TRANSACTION ログはすべての記録を保持し、ますます大きくなり、より多くのスペースを消費し、より多くの時間がかかるため、本当に必要な場合は TRANSACTION を使用してください。