PayPal 是否仍支持通过 HTTP REST API 进行活动报告和余额?

问题描述

感谢阅读 - 我的问题很简单:

  • 我做错了什么?
  • 我错过了什么?
  • 我是否需要额外的访问权限才能使用报告引擎?

我似乎无法使用简单的 Python 客户端从我的 pp 帐户获取余额或交易数据,尽管似乎正确使用了已记录的 API。

我有

  • 企业帐户
  • 开发门户访问
  • 沙盒和 Live API 使用的有效凭证

我的 py 客户端封装了几个 API 调用并成功完成了以下操作:

  • 使用开发门户凭据获取 API 令牌
  • 使用 API 令牌向余额和交易 API 资源发出有效的 HTTP 请求
  • API 响应表示 200 OK

然而,除了 OAuth 令牌请求,所有的响应都说 Empty XML data

伪示例代码

# -- pp_auth_header is a global,contains Auth Bearer token

def get_balances():
    print("get_balances...")

    headers = pp_auth_header

    endpoint = "/v1/reporting/balances"
    query = "?currency_code=USD&as_of_time=2021-02-22T00:00:00-0700"

    r = requests.get(pp_report_eng_url + endpoint + query,headers=pp_auth_header)

    print("get_balances - status: {}".format(r.status_code))

    if r.status_code == 200:
        print("get_balances - r.text: {}".format(r.text))

# -- output of the above is

get_balances...
get_balances - url: https://api-m.sandBox.paypal.com/v1/reporting/balances?currency_code=USD&as_of_time=2021-02-22T00:00:00-0700
get_balances - status: 200
get_balances - r.text: Empty XML data

解决方法

生成一个 acess_token,然后从命令行使用 curl 进行测试,as documented

curl -v -X GET
https://api-m.sandbox.paypal.com/v1/reporting/balances?currency_code=USD&as_of_time=2016-10-15T06:07:00-0700
\
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"

确保传递那里描述的标头,包括“Content-Type: application/json”。

PayPal REST API 不返回 XML。

如果这不起作用,请发布 curl -v 命令的输出以及 oauth2 令牌请求返回的范围。使用这些详细信息更新您的问题。