对 Paypal REST API、NVP 和授予权限感到困惑

Confused about Paypal REST API, NVP and granting permissions

我对 Paypal API 及其工作顺序以及 REST 和 NVP 之间的关系有些困惑。

我的要求是访问客户的 Paypal 帐户,查找销售额并为他们执行退款。我不希望他们每次都必须登录,但我不希望他们必须登录自己的 Paypal 帐户和 fiddle 使用复杂的 API 凭据部分来授予我的应用程序权限 -这对于普通用户来说太复杂了。

我想做的是将他们转发到他们登录的 Paypal 页面,这使我可以使用安全令牌无限期地访问他们的 Paypal 帐户。

我已经实施了 Identity 例程 (https://developer.paypal.com/docs/api/identity/),它允许我获得可再生的 refresh_token 和 access_token,但是我意识到这只允许我访问基本的个人资料信息(我认为?!)因为对 /refund 的调用因范围无效而失败。

我不明白的是,为什么 Paypal 的 REST Api 通过 /v1/payments/sale/sale_id/refund 有 Sale/Refund 的文档,但是当我尝试将它与 access_token 一起使用时身份例程,它告诉我我没有正确的范围。似乎用户每次都必须通过重定向到 Paypal 进行授权?!

我还找到了 'classic' 权限 API 似乎可以让我做我想做的事情 (https://developer.paypal.com/docs/classic/permissions-service/integration-guide/PermissionsAbout/) 但是它似乎使用了经典的 NVP 方法贝宝。我希望使用 REST 并使其保持现代。

许可部分确实提到了一个名为 'GetAccessToken' (https://developer.paypal.com/docs/classic/api/permissions/GetAccessToken_API_Operation/) 的方法,它似乎 return 一个访问令牌 - 这个访问令牌可以在 REST [=43] 中使用吗=] 需要 Access_token(授权:Bearer Access-Token')

我是否使用 NVP 权限 (https://svcs.paypal.com/Permissions/RequestPermissions) 通过登录授予自己访问权限,然后使用经典 Paypal 中的 GetAccessToken 为自己获取 REST Api 的令牌?!

有人可以给我一个概述来实现这个目标吗?授予我的应用程序权限,然后对销售执行退款(最好使用 REST Api)。

谢谢!

REST 将是不可能的 -- 没有 REST API 可以从帐户中提取交易列表,因此它无法满足您的需要。

Permissions Service 是获取客户帐户权限的适当途径。您需要确保请求 TRANSACTION_SEARCHTRANSACTION_DETAILSREFUND 权限才能提供您描述的功能。

权限服务返回的访问令牌与 REST API 使用的访问令牌不同,因为权限服务较旧并且早于 REST API秒。它实际上更接近 Oauth1 实现(尽管不完全是)。 merchant SDKs 内置了必要的方法来获取令牌和令牌机密(您将从权限服务返回)并将它们转换为 运行 所需的 headers代表客户的 PayPal 帐户致电。