我对 Paypal API 及其工作顺序以及 REST 和 NVP 之间的关系有点困惑。
我的要求是访问客户的 Paypal 帐户,查找销售额并为他们执行退款。我不希望他们每次都必须登录,但我不希望他们必须登录自己的 Paypal 帐户并摆弄复杂的 API 凭据部分来授予我的应用程序权限——这对普通用户来说太复杂了.
我想做的是将他们转发到他们登录的 Paypal 页面,这使我可以使用安全 token 无限期地访问他们的 Paypal 帐户。
我已经实现了身份例程 ( https://developer.paypal.com/docs/api/identity/ ),它允许我获得可更新的 refresh_token 和 access_token,但是我意识到这只允许我访问基本配置文件信息(我认为?!)作为调用/退款失败,范围无效。
我不明白的是,为什么 Paypal 的 REST Api 通过/v1/payments/sale/sale_id/refund 有销售/退款的文档,但是当我尝试将它与身份例程中的 access_token 一起使用时,它告诉我我没有正确的范围。似乎用户每次都必须通过重定向到 Paypal 进行授权?!
我还找到了“经典”权限 API,它似乎可以让我做我想做的事 (https://developer.paypal.com/docs/classic/permissions-service/integration-guide/PermissionsAbout/),但它似乎使用了 Paypal 的经典 NVP 方法。我希望使用 REST 并使其保持现代。
权限部分确实提到了一个名为“GetAccessToken”(https://developer.paypal.com/docs/classic/api/permissions/GetAccessToken_API_Operation/)的方法,它似乎返回一个访问 token - 然后可以在需要 Access_token 的 REST API 中使用此访问 token (授权:Bearer Access-Token ')
我是否使用 NVP 权限 ( https://svcs.paypal.com/Permissions/RequestPermissions ) 通过登录授予自己访问权限,然后使用经典 Paypal 中的 GetAccessToken 为自己获取 REST Apis 的 token ?!
有人可以给我一个概述来实现这个目标吗?授予我的应用程序权限,然后执行销售退款(最好使用 REST Api)。
谢谢!
最佳答案
REST 将是不可能的——没有 REST API 可以从账户中提取交易列表,因此它无法满足您的需要。
Permissions Service将是获得客户帐户权限的适当途径。您需要确保请求TRANSACTION_SEARCH
、TRANSACTION_DETAILS
和REFUND
权限才能提供您描述的功能。
权限服务返回的访问 token 与 REST API 使用的访问 token 不同,因为权限服务较旧且早于 REST API。它实际上更接近 Oauth1 实现(尽管不完全是)。 merchant SDKs在其中内置必要的方法来获取 token 和 token secret (您将从权限服务返回)并将它们转换为代表客户的 PayPal 帐户运行调用所需的必要 header 。
关于paypal - 对 Paypal REST API、NVP 和授予权限感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37832189/