【问题标题】:Workflow Confusion: PayPal Cordova Plugin / Magento工作流程混乱:PayPal Cordova 插件 / Magento
【发布时间】:2016-09-05 23:40:15
【问题描述】:

我对 PayPal 的 Cordova 插件有点困惑,这对于实现与 Magento 实例交互的安全工作流意味着什么。

通常,Express Checkout 工作流程如下所示:

  1. 客户访问 Magento 站点结帐
  2. 客户被定向到 PayPal
  3. 客户返回 Magento 站点
  4. 客户在 Magento 网站上点击“下订单”
  5. Magento 网站将报价转换为订单
  6. Magento 站点访问 PayPal 以获取/确认资金、检查可能存在的欺诈等...

Cordova 插件强加的工作流看起来是这样的:

  1. 客户访问应用结帐
  2. 客户被定向到 PayPal
  3. 根据配置授权或获取付款
  4. 客户被引导回应用程序
  5. 应用执行成功处理程序

在上述 Cordova 插件工作流程中,请注意缺少报价到订单转换的步骤。从我的角度来看,我看到了两种选择:

插入报价 -> 2 到 3 之间的订单转换调用

注意事项:

  1. 客户可能无法完成结帐,现在订单在系统中永久孤立
  2. 客户可能希望更改某些内容(现在无法更改 - 无法修改订单)

插入报价 -> 5 后订单转换调用

注意事项:

  1. 信任客户端通知服务器付款已完成(这需要使用 PayPal 进行服务器端交叉检查/额外的复杂性)
  2. 客户端可能永远不会真正发送通知

我不喜欢上面提供的任何选项。任何人都可以帮助消除我的困惑或告诉我我希望我缺少什么吗?

【问题讨论】:

    标签: php cordova magento paypal


    【解决方案1】:

    我发现我可以向 Cordova 应用程序提供占位符发票号以传递给 PayPal。

    然后,PayPal 可以通过 IPN 将此发票编号连同相关交易详细信息发送到 Magento 服务器。这将客户排除在外并满足我的需求。

    所以实际上工作流程如下:

    1. 客户点击“PayPal 按钮”
    2. 向 Magento 服务器发送请求以创建订单和占位符发票
    3. Magento 服务器向客户端提供占位符发票编号
    4. 订单现在在 Magento 中为“待付款”
    5. 客户前往 PayPal 进行付款
      • 如果客户端支付成功,则向Magento服务器发送IPN,客户端返回App支付成功页面
      • 如果客户付款失败且无法返回应用程序,订单将保持“付款待定”状态,并由 crontask 每隔一段时间取消一次
      • 如果客户端支付失败并成功返回应用,应用会联系Magento服务器并立即取消订单

    我对该产品缺乏文档/支持感到非常失望。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2014-12-26
    相关资源
    最近更新 更多