Paypal Refund Rest Api v2 - 由于权限不足,授权失败

Posted

技术标签:

【中文标题】Paypal Refund Rest Api v2 - 由于权限不足,授权失败【英文标题】:Paypal Refund Rest Api v2 - Authorization failed due to insufficient permissions 【发布时间】:2019-07-21 06:53:35 【问题描述】:

我能够成功执行以下 API

/v2/checkout/orders
/v2/checkout/orders/order_id/authorize
/v2/checkout/orders/order_id/capture

为什么我在执行此处所述的 PayPal 退款时收到“NOT_AUTHORIZED”响应? - https://developer.paypal.com/docs/api/payments/v2/#captures_refund

POST 请求

https://api.sandbox.paypal.com/v2/payments/captures/<Capture ID I got from capture request>/refund

回应

    
    "name": "NOT_AUTHORIZED",
    "message": "Authorization failed due to insufficient permissions.",
    "debug_id": "6c6xxxxx6c",
    "details": [
        
            "issue": "PERMISSION_DENIED",
            "field": "capture_id",
            "value": "XXXXXXXXX",
            "description": "You do not have permission to access or perform operations on this resource.",
            "location": "path"
        
    ],
    "links": [
        
            "href": "https://developer.paypal.com/docs/api/v2/payments/#NOT_AUTHORIZED",
            "rel": "information_link"
        
    ]

【问题讨论】:

Sumeet,你还在面对这个问题吗?只要您使用 client_id + secret_id 组合进行调用(就像您进行捕获调用一样);你不应该面对这个问题。如果您仍然面临这个问题;请使用 paypal-debug-id 恢复,我们会看看。 @TriniGeorge 默认情况下,客户 ID 没有退款权限。我向技术支持提出了请求,他们允许我的客户 ID,现在它可以工作了。 【参考方案1】:

对于 V2 退款和取消请求,您必须联系 PayPal 支持人员为您现有的 ClientId 和 Client Secret(适用于 PayPal V1 API)添加权限,并且没有其他方法可以设置相同的权限。 如果您需要避免这种情况,那么只需从 PayPal 帐户创建新的 ClientId 和 Client Secret,它将与 PayPal V2 API 一起正常工作。

【讨论】:

不幸的是,这没有帮助。唯一的方法似乎是联系支持人员。 这对我有帮助,我只需要创建新的 API 密钥..... :( 我花了一天时间尝试调试此问题,但在任何地方都找不到此文档。创建一个新的密钥集有效。谢谢!【参考方案2】:

使用一组新的客户端 ID 和密码创建一个新应用程序对我有用。

【讨论】:

以上是关于Paypal Refund Rest Api v2 - 由于权限不足,授权失败的主要内容,如果未能解决你的问题,请参考以下文章

PayPal REST API - 已退款交易错误

贝宝 Rest API SDK v2

如何将 PayPal 智能支付按钮与 PHP V2 的 REST API SDK 结合起来?

Paypal Refund NVP API : 您无权退款此交易

Paypal支付的退款refund之getAccessToken

Paypal自适应退款