问题描述
我正在尝试在我们的网站上集成PayPal,我们允许商家使用PayPal Connect连接他们的帐户。获得商户访问令牌后,我将获取他们的帐户ID,并将其用作商人ID,以直接向他们的帐户处理付款。
在前端,我使用link允许客户向商家付款。我使用以下主体在后端生成订单ID,然后将此orderId返回前端:
request.requestBody({
intent: 'CAPTURE',purchase_units: [{
amount: {
currency_code: currency,value: amount
},payee: {
merchant_id: accountId
}
}]
});
客户付款后,我收到CHECKOUT.ORDER.APPROVED
Webhook通知,我在该通知上尝试使用订单ID CAPTURE
并获得以下答复
贝宝订单捕获COMPLETED
,但purchase_units[0].payments.capture[0].status
是PENDING
当我看到付款的客户沙盒帐户时,我看到-3000 INR的条目等待卖方提出索赔。
在我的开发人员帐户的“通知”下,我确实看到商家收到通知以要求赔偿该金额。
但是,当我登录商人沙盒帐户时,我没有看到任何活动。即使在获得订单后,总金额仍保持不变。
在前端,我已将以下参数传递给脚本
https://www.paypal.com/sdk/js?client-id=abcd¤cy=INR&intent=capture&merchant-id=ABCDEFGHIJKLI
我正在使用@ paypal / checkout-server-sdk在后端使用Node JS
解决方法
待审核原因为“ UNILATERAL”。
您显然正在以沙箱模式处理向沙箱接收者的电子邮件或目前不与任何帐户对应的商人ID的付款。您需要使用该电子邮件地址创建一个沙箱企业帐户,或在该沙箱企业帐户的https://www.sandbox.paypal.com界面中使用现有帐户添加并确认该帐户,以便在沙箱中接受付款。
如果该帐户存在于https://www.sandbox.paypal.com/businessprofile/settings/email中的某个帐户上,但未得到确认(可能是由于创建该帐户期间的沙箱错误),请发送新的确认消息,并通过https://www.paypal.com/signin?intent=developer&returnUri=https%3A%2F%2Fdeveloper.paypal.com%2Fdeveloper%2Fnotifications%2F进行确认
顺便说一句,INR付款只能由印度买家发送。来自印度境外的付款人无法完成INR结帐,因此该货币受到限制。