Paypal 无法使用沙箱处理付款

Posted

技术标签:

【中文标题】Paypal 无法使用沙箱处理付款【英文标题】:Paypal not able to process the payment using sandbox 【发布时间】:2021-10-04 06:14:33 【问题描述】:

现在我必须集成一个 paypal 支付,我在使用沙盒帐户时遇到了问题。

所以我使用我的 Nodejs 服务器准备 PayPal 付款,然后重定向用户(使用沙盒)以完成该过程,但是当我点击付款或继续时,我看到了以下消息:

我们无法使用您的 PayPal 帐户处理您的付款,网址为 这次。请返回商家并尝试使用其他 付款方式。

我的网址中有:

genericError?code=UEFZTUVOVF9ERU5JRUQ%3D

这是我的服务器代码:

app.get('/pay', (req,res)=>
    console.log('payement');
    var create_payment_json = 
        "intent": "sale",
        "payer": 
            "payment_method": "paypal"
        ,
        "redirect_urls": 
            "return_url": "http://return.url",
            "cancel_url": "http://cancel.url"
        ,
        "transactions": [
            "item_list": 
                "items": [
                    "name": "item",
                    "sku": "item",
                    "price": "100",
                    "currency": "USD",
                    "quantity": 1
                ]
            ,
            "amount": 
                "currency": "USD",
                "total": "100"
            ,
            "description": "This is the payment description."
        ]
    ;
    
    
    paypal.payment.create(create_payment_json, function (error, payment) 
        if (error) 
            throw error;
         else 
            console.log("Create Payment Response");
            console.log(payment);
            for (var index = 0; index < payment.links.length; index++) 
                //Redirect user to this endpoint for redirect url
                if (payment.links[index].rel === 'approval_url') 
                    res.redirect(payment.links[index].href);
                
            
        
    );
);

【问题讨论】:

【参考方案1】:

您为什么要使用已弃用的 v1/payments API 或 PayPal-Node-SDK?不要那样做。使用当前的 v2/checkout/orders 或 Checkout-NodeJS-SDK。

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

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


至于您的一般错误问题,请尝试creating a new sandbox Business account 为其他国家/地区,例如美国 进行沙盒测试。然后 create a REST App 为该新沙盒帐户,并使用该应用的沙盒客户端 ID 和密码。

【讨论】:

如何获取或找到沙盒业务账户的clientId和密码?当我查看帐户详细信息时,我只能找到密码以及电子邮件和帐户 ID。 在“我的应用程序和凭据”中为该 SB 业务帐户创建一个 REST 应用程序...paypal.com/… 啊我已经有一个了,我已经测试过了,但同样的问题在这里,只是当你说“尝试创建一个新的沙箱业务帐户”时,你的意思是我已经使用仪表板下的沙箱帐户创建了它或新的仪表板帐户?因为我已经生成了一个沙盒商业帐户,但仍然是同样的问题(我来自突尼斯,这里没有贝宝) 创建一个美国沙盒企业帐户。创建一个使用该沙盒业务帐户的 REST 应用。 您可以在这里看到i.ibb.co/vDz9wzX/Capture.png,当我创建沙盒美国企业帐户时,我找不到任何 REST 应用程序凭据,只有 SOAP

以上是关于Paypal 无法使用沙箱处理付款的主要内容,如果未能解决你的问题,请参考以下文章

无法登录贝宝沙箱

PayPal - 付款人未识别

Paypal:我们目前无法使用 PayPal 帐户处理付款。请返回给商家

Paypal:无法处理付款

在IPN上无法获得Paypal“验证”或“无效”

由于货币不受支持,此交易无法处理 - Paypal 直接付款