从 checkout.js 迁移到 JavaScript SDK,但在执行付款之前授权?
Migrating from checkout.js to JavaScript SDK, but authorising before executing the payment?
我们仍然使用 checkout.js 来实现 Paypal 快速结帐。步骤有:
- 用户点击 Paypal 按钮
- 用户登录 Paypal
- Paypal 向点击“继续”的用户显示金额。这授权付款(但不执行)。
- 用户回到商店并看到他的购买摘要
- 用户点击“立即购买”,店铺通知paypal执行paypamt
- 用户看到“谢谢”页面。
现在我们要迁移到 JavaScript SDK。根据这个:
https://developer.paypal.com/docs/checkout/standard/upgrade-integration/
现在的步骤是:
- 用户点击 Paypal 按钮
- 用户登录 Paypal
- Paypal 向点击“立即购买”的用户显示金额。这将执行付款。
- 用户看到“谢谢”页面。
出于法律原因,我们需要 Paypal 将用户重定向回他可以点击“立即购买”的商店,就像 checkout.js 所做的一样。我们如何使用 Paypal JavaScript SDK 而不是 4 个来实现这 6 个步骤?我找不到任何这样做的例子。
执行是v1/payments和checkout.js的术语;使用当前的 JS SDK 和 v2/checkout/orders 它被称为“捕获”。
点击“立即付款”的用户不会立即在 PayPal 端捕获付款,而是调用您提供的 onApprove
函数来进行捕获。该函数可以首先显示您需要它显示的任何消息,包括使用最终确认信息更新页面的 DOM -- 或者,如果必须,使用 JS 重定向到新的确认页面。
收到最终付款确认后,您需要做的是使用 actions.order.capture (client-side) 或 server-side API 调用获取付款。
[始终建议使用 server-side 集成,在这种情况下,createOrder
函数也应该调用服务器路由...参见 the code demo]
最后,当要进行确认步骤时,需要进行措辞更改以显示正确的按钮文本。默认情况下,使用 JS SDK,PayPal 批准流程中的最终按钮显示为“立即付款”。如果您要在捕获之前收到一条确认消息并要求用户执行操作,则该按钮需要更改为“继续”以指示您需要执行其他步骤。要更改它,include the query string parameter &commit=false
on the SDK line. In addition to the query string, any server-side API call to create an order 必须在 application_context
对象中设置 "user_action": "CONTINUE"
。 (请注意,此对象属于创建订单请求 JSON 的顶级层次结构,而不属于 purchase_unit)
我们仍然使用 checkout.js 来实现 Paypal 快速结帐。步骤有:
- 用户点击 Paypal 按钮
- 用户登录 Paypal
- Paypal 向点击“继续”的用户显示金额。这授权付款(但不执行)。
- 用户回到商店并看到他的购买摘要
- 用户点击“立即购买”,店铺通知paypal执行paypamt
- 用户看到“谢谢”页面。
现在我们要迁移到 JavaScript SDK。根据这个: https://developer.paypal.com/docs/checkout/standard/upgrade-integration/ 现在的步骤是:
- 用户点击 Paypal 按钮
- 用户登录 Paypal
- Paypal 向点击“立即购买”的用户显示金额。这将执行付款。
- 用户看到“谢谢”页面。
出于法律原因,我们需要 Paypal 将用户重定向回他可以点击“立即购买”的商店,就像 checkout.js 所做的一样。我们如何使用 Paypal JavaScript SDK 而不是 4 个来实现这 6 个步骤?我找不到任何这样做的例子。
执行是v1/payments和checkout.js的术语;使用当前的 JS SDK 和 v2/checkout/orders 它被称为“捕获”。
点击“立即付款”的用户不会立即在 PayPal 端捕获付款,而是调用您提供的 onApprove
函数来进行捕获。该函数可以首先显示您需要它显示的任何消息,包括使用最终确认信息更新页面的 DOM -- 或者,如果必须,使用 JS 重定向到新的确认页面。
收到最终付款确认后,您需要做的是使用 actions.order.capture (client-side) 或 server-side API 调用获取付款。
[始终建议使用 server-side 集成,在这种情况下,createOrder
函数也应该调用服务器路由...参见 the code demo]
最后,当要进行确认步骤时,需要进行措辞更改以显示正确的按钮文本。默认情况下,使用 JS SDK,PayPal 批准流程中的最终按钮显示为“立即付款”。如果您要在捕获之前收到一条确认消息并要求用户执行操作,则该按钮需要更改为“继续”以指示您需要执行其他步骤。要更改它,include the query string parameter &commit=false
on the SDK line. In addition to the query string, any server-side API call to create an order 必须在 application_context
对象中设置 "user_action": "CONTINUE"
。 (请注意,此对象属于创建订单请求 JSON 的顶级层次结构,而不属于 purchase_unit)