使用PayPal API查询交易详情遇“资源ID未找到”错误求助
调用PayPal交易搜索API v1获取交易详情时返回“Requested resource ID was not found.”错误
我尝试通过PayPal交易ID调用API获取交易详情,以此确认交易是否完成,但始终收到“Requested resource ID was not found.”错误。我使用的是PayPal交易搜索API v1,之前怀疑问题出在X-PAYPAL-SECURITY-CONTEXT参数上,按照文档示例填写无效后,尝试了以下代码,但问题依然存在:
import requests headers = { 'Authorization': 'Bearer [My Token]', 'Content-Type': 'application/json', } params = ( ('transaction_id', '81795386U4841702W'), ('fields', 'all'), ('page_size', '100'), ('page', '1'), ) response = requests.get('https://api-m.sandbox.paypal.com/v1/reporting/transactions', headers=headers, params=params) print(response)
排查与解决方案:
核对交易ID与环境匹配
- 确认使用的交易ID属于沙箱环境(当前调用的是沙箱API地址),不要混用生产环境的交易ID。可以登录PayPal沙箱后台,找到对应交易的ID进行逐字符核对,避免输入错误。
验证Token权限与有效性
- 确保你的Access Token是通过沙箱环境的客户端ID和密钥生成,且返回的权限
scope包含transaction_search。同时检查Token是否在有效期内,过期的话重新生成。
- 确保你的Access Token是通过沙箱环境的客户端ID和密钥生成,且返回的权限
正确使用
X-PAYPAL-SECURITY-CONTEXT参数- 当API调用主体不是交易所属商家账户时才需要该参数,格式为
{"accountNumber": "商家邮箱/账户ID"},需确保填写的账户与交易所属账户完全一致。如果你的Token本身就是交易商家的凭证,可尝试省略该参数。
- 当API调用主体不是交易所属商家账户时才需要该参数,格式为
换用更精准的v2交易详情API
- 交易搜索API v1偏向批量查询,单个交易详情查询更适合用v2 API:
- 若为付款捕获交易,调用
GET https://api-m.sandbox.paypal.com/v2/payments/captures/{交易ID} - 若为授权交易,调用
GET https://api-m.sandbox.paypal.com/v2/payments/authorizations/{交易ID}
示例代码:
import requests headers = { 'Authorization': 'Bearer [有效Token]', 'Content-Type': 'application/json', } response = requests.get('https://api-m.sandbox.paypal.com/v2/payments/captures/81795386U4841702W', headers=headers) print(response.json()) - 若为付款捕获交易,调用
- 交易搜索API v1偏向批量查询,单个交易详情查询更适合用v2 API:
查看完整错误响应
- 打印
response.json()获取详细错误信息,PayPal的错误返回通常会给出具体原因,帮助定位问题。
- 打印
内容的提问来源于stack exchange,提问作者Killer Bean
相关产品推荐
相关产品推荐

