シナリオを考えてみましょう: e コマース Web サイトで、必要なすべての情報を入力した後、一部のユーザーが何らかの理由で注文を完了できませんでした (「支払い」のみが不足しています)。
習慣を失わないようにするために、Web サイトはこれらの各ユーザーに 24 時間以内に、注文の概要と取引を完了するための PayPal リンクを記載したリマインダー メールを送信したいと考えています。
- このリンクはどのように構築できますか?
- 何の落とし穴がありますか?
- このリンクはどのように処理されますか?
単純な電子メールは最も安全な場所ではないため、単に送信しないことをお勧めします: - PayPal リンク - 完全な注文の詳細
しかし、できることは、セッションに関するすべての情報を保存し、安全なアプリケーションへの「単純なリンク」を介して取得することです。これにより、新しい Paypal トランザクション ページが生成されます。
<a href="https://yourapp.com/retrieve-transaction?id=ENCRYPTED_ID">...</a>
リンクをクリックした後、ユーザーのログインを要求する必要があります。トランザクション自体が危険にさらされていない場合でも (独立した支払いが必要です)、リンク自体がトランザクションの内容を公開します。薬やその他の機密または機密の購入を考えてください。これらの詳細をメールに送りたくないのと同じ理由で、クリックするだけでアクセスできるようにしたくありません。
次に、ログインから有効なセッションを作成すると、アカウント情報や注文履歴などにアクセスできるようになります。ENCRYPTED_ID からの情報を追加することで、「凍結された」購入セッションからのすべての情報をセッションに挿入できます。
これで、PayPal リンクを使用してクイック注文ページを再作成するために必要なものがすべて揃いました。
最後に、ユーザー (または他の誰か) が同じリンクを再度クリックした場合に備えて、事前設定された時間後およびトランザクションの完了後にもリンクの無効化を提供する必要があります。
支払いが完了したら、凍結されたセッションを削除します
1 時間ごと (たとえば)、48 時間以上経過した未解決の凍結セッションがあるかどうかを確認します。これらは有効期限が切れているため、削除します。
24 時間より前であるが 48 時間より新しいセッションが他にある場合、"Sent mail!" はありません。フラグを設定するには、そのセッションへのリンクを含む電子メールを送信し、フラグを設定します。
そのリンクのクリックを受け取ったら、ログインを要求します (リンクが 24 時間以上経過している場合は、機能しないことに注意してください)。