工作流混乱:PayPal Cordova插件/ Magento

时间:2016-05-10 20:03:07

标签: php cordova magento paypal

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

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

  1. 客户访问Magento网站结帐
  2. 客户被定向到PayPal
  3. 客户返回Magento网站
  4. 客户点击'下订单'在Magento网站上
  5. Magento网站将报价转换为订单
  6. Magento Site访问PayPal以捕获/确认资金,检查可能的欺诈行为等......
  7. Cordova插件强加的工作流程如下所示:

    1. 客户访问App结帐
    2. 客户被定向到PayPal
    3. 根据配置授权或捕获付款
    4. 客户被引导回App
    5. App执行成功处理程序
    6. 在上面的Cordova插件工作流程中,请注意缺少订单转换报价的步骤。从我的角度来看,我看到两个选择:

      插入引号 - >订单转换调用2到3之间

      注意事项:

      1. 客户可能无法完成结帐,现在订单在系统中永久孤立
      2. 客户可能希望更改某些内容(现在无法修改 - 订单无法修改)
      3. 插入引号 - > 5之后的订单转换调用

        注意事项:

        1. 客户端被信任通知服务器已付款(这需要使用PayPal进行服务器端交叉检查/额外的复杂性)
        2. 客户可能永远不会发送通知
        3. 我不喜欢上面提到的任何选项。任何人都可以帮助解决我的困惑或向我展示我希望我失踪的东西吗?

1 个答案:

答案 0 :(得分:1)

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

然后,PayPal可以通过IPN将此发票号码以及相关的交易详情发送到Magento服务器。这使得客户端无法满足我的需求。

所以工作流程确实如下:

  1. 客户点击“PayPal按钮”
  2. 向Magento服务器发送请求以创建订单和占位符发票
  3. Magento Server向客户提供占位符发票号
  4. 订单现在是Magento中的“待付款”
  5. 客户前往PayPal进行付款
    • 如果客户端成功付款,则会向Magento服务器发送IPN,并将客户端返回到App支付成功页面
    • 如果客户未能付款且未能返回应用程序,订单仍将保留为“付款待处理”,以便经常被crontask取消
    • 如果客户未能付款并成功返回应用程序,该应用程序将联系Magento服务器并立即取消订单
  6. 我对此产品缺乏文档/支持感到非常失望。