Paypal Reset api 新增物流跟踪信息的疑问?

对接paypal的物流跟踪功能时,php调paypal /v1/shipping/trackers接口添加物流跟踪信息,一直提示权限不够Authorization failed due to insufficient permissions 有做过的大哥指点一下吗?

讨论数量: 1

你遇到的错误提示:

Authorization failed due to insufficient permissions

是在调用 PayPal 的物流跟踪 API(/v1/shipping/trackers)时返回的,这意味着你的请求通过了认证,但你的 PayPal 应用不具备调用该 API 的权限


🔍 原因解析

该错误一般来自以下几个方面:

1. Client ID 对应的 App 没有开通 Logistics Tracking 权限

  • /v1/shipping/trackers 是 PayPal Logistics Tracking API 的一部分,默认很多 App 是没有这个权限的。
  • 即使是 Live App,也可能没有自动启用该功能。

✅ 解决方法

方式一:申请启用 Tracking API 权限

你需要前往 PayPal 开发者后台请求启用权限:

  1. 登录:
    developer.paypal.com/

  2. 选择你的 App(Live 或 Sandbox)

  3. 滚动到 "App feature options" 或类似的部分,查看是否能手动勾选 "Logistics / Tracking".

  4. 如果没有该选项,你需要 联系 PayPal 客服 提交如下请求:

    请为我的 PayPal App 启用 Logistics Tracking API 权限,以便我可以调用 /v1/shipping/trackers 接口进行物流信息同步。
    App 名称:xxx
    Client ID:xxx

    联系方式:


方式二:确保使用了正确的 App 类型和 Token

  • 确保你是用的 Server-side Token 认证(Client Credentials 方式)
    curl -u "CLIENT_ID:SECRET" \
      -X POST https://api-m.sandbox.paypal.com/v1/oauth2/token \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "grant_type=client_credentials"
    然后使用返回的 access_token 调用:
    POST https://api-m.sandbox.paypal.com/v1/shipping/trackers
    Authorization: Bearer ACCESS_TOKEN

🚨 注意事项

  • ✅ 只能使用 Live App 或 Sandbox App,并需要明确启用 Tracking API。
  • ❌ 使用 User Token 或 Third-Party Token 会导致权限不足。
  • ✅ 请求格式需正确,如:
    {
      "tracker_id": "123456789",
      "tracking_number": "1Z999AA10123456784",
      "status": "SHIPPED",
      "carrier": "UPS",
      "transactions": [
        {
          "transaction_id": "PAYPAL_TRANSACTION_ID"
        }
      ]
    }

✅ 建议流程(排查 checklist)

  1. ✅ 确保使用了正确的 access token(client credentials)。
  2. ✅ 你的 App 已启用 “Shipping / Tracking API” 权限(联系 PayPal 开启)。
  3. ✅ 请求结构和 JSON 格式无误。
  4. transaction_id 为有效的 PayPal 交易 ID。
  5. ❌ 避免使用个人账户 token 调用此 API(必须是 server-to-server 授权)。

4天前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!