捕获付款:无法执行请求的操作,语义上不正确或业务验证失败

时间:2019-04-22 17:13:41

标签: paypal paypal-sandbox

我对新的PayPal API(v2)和沙箱有疑问

1-创建订单https://api.sandbox.paypal.com/v2/checkout/orders

{
    "intent": "CAPTURE",
    "purchase_units": [
        {
            "amount": {
                "currency_code": "USD",
                "value": 10
            },
            "payee": {
                "email": "xxxx@gmail.com",
                "merchant_id": "xxxx"
            }
        }
    ],
    "application_context": {
        "shipping_preference": "NO_SHIPPING"
    }
}

2-转到响应中的approve链接

  

如果沙盒帐户中有信用卡,贝宝(PayPal)会显示:“抱歉,我们无法处理您的请求。请稍后再试”

3-登录并批准订单

  

沙盒帐户没有信用卡

Approve order image

  

单击继续按钮后,页面上将显示加载指示器,并且该指示器再次消失并且什么也没有发生

4-检查订单状态,它为APPROVED

{
    ...
    "status": "APPROVED"
    ...
}

5-尝试获取付款https://api.sandbox.paypal.com/v2/checkout/orders/xxx/capture

{
    "name": "UNPROCESSABLE_ENTITY",
    "details": [
        {
            "issue": "TRANSACTION_REFUSED",
            "description": "The request was refused"
        }
    ],
    "message": "The requested action could not be performed, semantically incorrect, or failed business validation.",
    "debug_id": "939b641049ad2",
    "links": [
        {
            "href": "https://developer.paypal.com/docs/api/orders/v2/#error-TRANSACTION_REFUSED",
            "rel": "information_link",
            "method": "GET"
        }
    ]
}

3 个答案:

答案 0 :(得分:3)

我知道了。这很简单。主体有效载荷缺少return_url中的application_context。 PayPal确实需要更好地记录错误。

答案 1 :(得分:0)

带我5个小时进行调试。与Ziad一样,我的麻烦是application_context,但与Ziad不同,我同时定义了cancel_urlreturn_url。不过,我之前已经将payment_method更改为我认为是更好的配置。

这些变化帮助了我。

payment_method": {
    "payee_preferred": "IMMEDIATE_PAYMENT_REQUIRED"
}

payment_method": {
    "payee_preferred": "UNRESTRICTED"
}

在这里,贝宝(Paypal)应该责怪他们没有帮助我们缩小这些原谅的领地的范围。

答案 2 :(得分:0)

迟到总比不到好:)

我发现这个错误通常是由于用户没有回复 PayPal 的电子邮件来验证他们的身份造成的! PayPal 偶尔会发送电子邮件来验证您的身份,我们中的一些人可能已经将它们标记为垃圾邮件!如果您不回复并验证您的身份,他们就会限制您的帐户,然后您会收到此错误:

description: "The merchant account is restricted."
field: "/purchase_units/@reference_id=='default'/payee"
issue: "PAYEE_ACCOUNT_RESTRICTED"

The requested action could not be performed, semantically incorrect, or failed business validation.

您必须登录您的 PayPal 帐户并转到 https://www.paypal.com/restore/dashboard