首页 > 解决方案 > 单一 PayPal 结账流程中的经常性和非经常性项目

问题描述

我目前正在将一个网站从 WooCommerce 迁移到 Shopware 6,它需要支持会员订阅的定期付款。

WooCommerce 仍在使用 PayPal Standard,它允许您在单个结帐流程中将非经常性订单项与经常性订阅混合。

Shopware 6 使用 REST API,它似乎不支持此功能,唯一的解决方案似乎是使用 Javascript SDK:

我现在正在研究的一个潜在解决方案是将初始订单创建的返回 URL 更改为重定向到计费协议批准 URL,并将该重定向的返回 URL 重定向回原始返回 URL。

我见过的过于复杂和更糟糕的用户体验。

在我撕掉我剩下的头发之前,有人有什么建议吗?


更新

虽然这不是我希望的解决方案,但我最终删除了 Shopware 6 PayPal 插件并使用 NVP API 实现了我自己的付款方式。

从用户的角度来看,只有一个审批流程。在后端,一旦用户批准了交易(已被标记为需要计费协议),交易就会得到验证,然后会创建一个循环配置文件。

标签: woocommercepaypalshopware

解决方案


无法在一次结帐中结合订阅和一次性付款。如果使用 PayPal 按钮显示上下文体验,此类项目甚至需要 PayPal SDK 行上的不同参数。

上下文体验是最好的,因为它不涉及从您的网站重定向到 PayPal 并返回。以下是一次性付款的流程:

在您的服务器上创建两条路由,一条用于“创建订单”,一条用于“捕获订单”,记录在此处。这些路由应该只返回 JSON 数据(没有 HTML 或文本)。后者应该(成功时)在返回之前将付款详细信息存储在您的数据库中(特别purchase_units[0].payments.captures[0].id是 PayPal 交易 ID)

将这两条路线与以下批准流程配对:https ://developer.paypal.com/demo/checkout/#/pattern/server


类似的(单独的)流程可用于PayPal 订阅。一次只能批准一个订阅。


推荐阅读