php - 工作流困惑 : PayPal Cordova Plugin/Magento

标签 php cordova magento paypal

我对 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. 客户端可能永远不会真正发送通知

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

最佳答案

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

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

所以真正的工作流程如下:

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

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

关于php - 工作流困惑 : PayPal Cordova Plugin/Magento,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37147923/

相关文章:

php - 从 Magento sitemap.xml 生成中排除某些产品

magento + 警告 : Illegal string offset 'value'

php - 我无法部署生产模式 : Command returned non-zero exit code (magento 2. 1)

php - WHERE 子句错误

php - MYSQL:从列中的字符串匹配的表中选择?

android - Cordova-CLI 和图标(不包括在内)

javascript 在网络应用程序中不起作用

java - Cordova android 后台插件在 5 分钟后被杀死

php - 用于缩小/压缩 javascript 的 php 中的简单正则表达式搜索和替换?

magento - PayPal IPN 回发失败