调用PayPal Transaction Search API返回400 INVALID_REQUEST错误如何解决
问题排查点
- 重复认证冲突:你已在请求头中携带
Authorization: Bearer <MY TOKEN>凭证,同时又为requests.get传入auth=(USERNAME, KEY)参数,相当于同时提交Bearer认证和Basic认证两种凭证,PayPal接口不支持同时携带两种认证方式,会直接判定为无效请求。 - 查询时间跨度超限:PayPal Transaction Search API要求单次查询的
start_date和end_date间隔不能超过31天,你当前设置的查询跨度为5个月,远超出接口限制,会触发400错误。 - 多余请求头参数:GET请求没有请求体,不需要携带
Content-Type: application/json请求头,部分接口的严格校验规则会将无效头识别为错误请求。 - 排查辅助:触发400错误时可打印响应体的JSON内容,其中的
message和details字段会给出明确的错误原因,可快速定位具体问题。
修正后参考代码
import requests TOKEN = "<MY TOKEN - 生成的有效access token>" headers = { "Accept-Language": "en_US", "Authorization": f"Bearer {TOKEN}", "Accept": "application/json" } BASE_URL = "https://api-m.paypal.com" # 调整时间范围,确保间隔不超过31天 QUERY_PATH = "/v1/reporting/transactions?start_date=2021-01-01T00:00:00-0700&end_date=2021-01-31T00:00:00-0700" REQUEST_URL = BASE_URL + QUERY_PATH response = requests.get(REQUEST_URL, headers=headers) # 打印详细错误信息方便排查,不要只打印response对象 print(response.status_code) print(response.json())
内容的提问来源于stack exchange,提问作者AndrewFerreira
相关产品推荐
相关产品推荐

