订单捕获后PayPal支付状态'PENDING''COMPLETED'(原因:单方面)

PayPal payment status 'PENDING' after order capture 'COMPLETED' (reason: unilateral)

我正在尝试在我们的网站上集成 PayPal,我们允许商家使用 PayPal Connect 连接他们的帐户。一旦我有了商家访问令牌,我就会获取他们的帐户 ID,我将其用作商家 ID 以直接处理对他们帐户的付款。

在前端,我使用 link 允许客户向商家付款。我使用以下正文在后端生成订单 ID,并将此 orderId return 发送到前端:

request.requestBody({

        intent: 'CAPTURE',
        purchase_units: [{
            amount: {
                currency_code: currency,
                value: amount
            },
            payee: {
                merchant_id: accountId
            }
        }]
    });

客户付款后,我收到 CHECKOUT.ORDER.APPROVED 网络钩子通知,我在该通知上尝试使用订单 ID CAPTURE 订单并获得以下响应

Paypal 订单捕获 COMPLETEDpurchase_units[0].payments.capture[0].statusPENDING

当我看到付款的客户沙盒帐户时,我看到一个条目 -3000 INR 等待卖家索赔。

在我的开发者帐户的“通知”下,我确实看到商家收到了索取金额的通知。

但是当我登录我的商户沙盒帐户时,我没有看到任何 activity。即使在捕获订单后,总金额仍然保持不变。

在前端,我已将以下参数传递给脚本

https://www.paypal.com/sdk/js?client-id=abcd&currency=INR&intent=capture&merchant-id=ABCDEFGHIJKLI

我在后端使用 Node JS @paypal/checkout-server-sdk

待处理的原因是 'UNILATERAL'。

您显然是在沙盒模式下处理一笔付款,收款人是沙盒收件人电子邮件地址或商户 ID,但目前不对应任何帐户,或未在帐户上确认。您需要使用该电子邮件地址创建一个沙盒企业帐户,或者在该沙盒企业帐户的 https://www.sandbox.paypal.com 界面中添加并使用现有帐户进行确认,以便在沙盒中接受付款。

如果它存在于 https://www.sandbox.paypal.com/businessprofile/settings/email but is not confirmed (likely due to a Sandbox bug during the period you created this account), send a new confirmation message and confirm it via https://www.paypal.com/signin?intent=developer&returnUri=https%3A%2F%2Fdeveloper.paypal.com%2Fdeveloper%2Fnotifications%2F

的帐户中

顺便说一下,INR 付款只能由印度买家发送。来自印度以外的付款人无法完成 INR 结账,此货币受到限制。