如何为 Google 使用 Paypal 付款执行授权 + 捕获流程?

How to do an Authorize + Capture flow for Google Pay with Paypal?

我正在将 Google 支付整合到一个简单的电子商务网站中。我们使用 Adyen 作为支付网关。

如果我只是传递一个金额,一切正常,点击“支付”,支付完成。

问题来了:我们还需要用户的送货地址来计算运费。通过简单的“仅捕获”流程,我们确实获得了该数据,但是 付款完成后。此外,我们必须在获取付款之前提供摘要页面。

所以: 我们需要一个授权+支付的流程,授权后获取收货地址。然后我们计算运费,并在稍后的捕获请求中调整实际金额。

很公平。但是:我使用 Paypal 作为 Google Pay 的付款方式。我的理解是它会生成某种虚拟信用卡,因此可以用作一张信用卡。这是我唯一的选择,因为我没有真正的信用卡。

现在,这对“只捕获”流程非常有效,但是一旦我们引入授权步骤,我就好像被迫登录 Google 并输入真实信用卡片

Google 提供 a way to test with fake Card numbers,但当我打开它们时,我无法再请求送货地址(错误 OR-ACC-01)。

所以这是我的问题: 当连接到 Google Pay 的唯一付款方式是 Paypal 时,是否可以使用 Google Pay 实现授权 + 捕获结帐流程?

这是一个包含授权步骤以及所需电子邮件地址和送货地址的设置:

https://jsfiddle.net/0n8tbeu3/2/

相关部分为:

paymentDataRequest.callbackIntents = ["PAYMENT_AUTHORIZATION"];
paymentDataRequest.shippingAddressRequired = true;
paymentDataRequest.emailRequired = true;

我希望它能与我的 GPay 一起使用,但我不得不输入一张新的/真实的信用卡。

编辑:

为了清楚起见,这里有一些屏幕截图。

1.AUTHORIZATIONSHIPPING_METHOD 意图。

// paymentDataRequest.callbackIntents = ["PAYMENT_AUTHORIZATION"];

移动端:我收到了默认的GPay支付sheet并且可以完成支付。 (抱歉质量不好,因为屏幕受到保护,不得不用我可怜的网络摄像头来拍摄):

在桌面上: 除非输入信用卡,否则我无法完成付款。 Paypal 显示为“此处不可用”(信用卡输入表单已折叠,我重新使用了尝试 with 授权意图的屏幕截图,因为相关部分完全相同)

2. WITH AUTHORIZATIONSHIPPING_METHOD 意图(当然也配置了回调)。

paymentDataRequest.callbackIntents = ["PAYMENT_AUTHORIZATION", "SHIPPING_METHOD"];

我在移动设备和桌面设备上看到与上面基本相同的屏幕,其中显示无法使用 Paypal 并提示我提供信用卡。

我正在努力确保我理解你想要实现的目标,以防它可以通过其他方式解决。

你最终是根据送货地址来计算运费的吗?并且您希望能够在执行捕获之前明确授权付款。或者您正在授权以便您可以收到送货地址?

我建议使用 dynamic price update 计算运费。相关部分是:

  • callbackIntents = ["SHIPPING_ADDRESS", "SHIPPING_OPTION", ...];,以及
  • paymentDataCallbacks: { onPaymentDataChanged }

要处理授权,请同时使用 PAYMENT_AUTHORIZATION 回调:

  • callbackIntents = [..., "PAYMENT_AUTHORIZATION"];,以及
  • paymentDataCallbacks: { onPaymentAuthorized }

as soon as we introduce an Authorization step, it looks like I'm being forced to log into Google and to enter a real Credit Card.

我不确定这是怎么回事。能否提供一些屏幕截图或屏幕录像?