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

标签 paypal paypal-sandbox paypal-rest-sdk paypal-nvp

我对 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_SEARCHTRANSACTION_DETAILSREFUND 权限才能提供您描述的功能。

权限服务返回的访问 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/

相关文章:

php - 带有数量的多个项目的 PayPal Checkout - 未知错误

Paypal 订阅 IPN 事件混淆

paypal - 如何编辑 PayPal 支付页面页眉和页脚文本

paypal-sandbox - Paypal 沙盒快速结帐 session 已过期

Paypal 到 Paypal 付款

php - 计费计划的多次付款定义

php - 如何使用 PHP Rest SDK 创建灵活的计费协议(protocol)?

php - PayPal Pro 设置错误 10548

php - 如何解决 Paypal 保险库信用卡扣费失败的问题

Paypal 获取所有客户的交易