Php 付款流程失败后,通过电子邮件中的单个链接继续支付购物车

Php 付款流程失败后,通过电子邮件中的单个链接继续支付购物车,php,paypal,Php,Paypal,考虑这样一个场景:在一个电子商务网站上,由于某种原因,一些用户在填写了所有必要的信息后未能完成订单(“只有”付款丢失) 为了不失去他们的习惯,该网站希望在24小时内向这些用户中的每一位发送一封提醒电子邮件,其中包括他们的订单摘要和允许他们完成交易的PayPal链接 如何建立这种联系 会有什么怪事 如何处理此链接 普通电子邮件不是最安全的地方,所以我建议不要只放在其中: -贝宝链接 -完整订单详情 但您可以做的是存储有关会话的所有信息,并通过安全应用程序的“简单链接”进行检索,然后生成一个新的P

考虑这样一个场景:在一个电子商务网站上,由于某种原因,一些用户在填写了所有必要的信息后未能完成订单(“只有”付款丢失)

为了不失去他们的习惯,该网站希望在24小时内向这些用户中的每一位发送一封提醒电子邮件,其中包括他们的订单摘要和允许他们完成交易的PayPal链接

  • 如何建立这种联系
  • 会有什么怪事
  • 如何处理此链接

    • 普通电子邮件不是最安全的地方,所以我建议不要只放在其中: -贝宝链接 -完整订单详情

      但您可以做的是存储有关会话的所有信息,并通过安全应用程序的“简单链接”进行检索,然后生成一个新的Paypal交易页面:

      <a href="https://yourapp.com/retrieve-transaction?id=ENCRYPTED_ID">...</a>
      
      
      
      单击链接后,您需要要求用户登录。即使交易本身没有风险(需要独立支付),链接本身也会暴露交易内容;考虑药品或其他敏感或机密购买。出于同样的原因,您不希望将这些详细信息放在邮件中,您也不希望只需单击即可访问它们

      然后,您将从登录创建一个有效会话,这将允许访问帐户信息、订单历史记录等。通过添加加密的_ID中的信息,可以将“冻结”购买会话中的所有信息注入会话

      现在,您已经具备了重新创建带有PayPal链接的快速订单页面所需的一切

      最后,您应该在预设时间之后以及事务完成之后提供链接失效,以防用户(或其他人)再次单击同一链接

      可能的工作流程
      • 您在第一个Paypal链接提案之前准备“冻结会话”
      • 如果付款成功,则删除冻结的会话

      • 每小时(比如)检查是否有超过48小时的未完成冻结会话。这些已过期,您可以删除它们

      • 如果有其他早于24小时但比48小时新的会话没有“已发送邮件!”标志,则发送带有该会话链接的电子邮件,并设置该标志

      • 在收到该链接的点击后,您请求登录(并提醒,如果该链接超过24小时,则该链接将不起作用)

      • 成功登录后,检查会话是否存在
      • 如果不是,“对不起,过期了-你想继续购物吗?”
      • 如果存在,请重新生成订单页并返回列表的开头。没错,如果你点击链接,不付款,然后走开,另一封电子邮件会发送给你——但你需要有目的地这样做。如果滥用的可能性(例如,骚扰我知道密码的人)困扰您,请在冻结的会话中添加一个计数器(“这是您第三次重新打开此订单。为避免潜在的滥用,我们将不再向您发送任何提醒”)。当然,除非你出售治疗轻率或短暂失忆症的药物