测试PayPal沙箱Activity REST API时遇PERMISSION_DENIED权限问题
我之前对接PayPal报告API时也踩过类似的权限坑,给你几个实用的排查方向:
确认Bearer Token的权限范围(Scopes)
支付接口和Activity API需要的权限完全不同!生成Token时,必须确保请求的scope参数包含Activity API所需的权限,比如https://uri.paypal.com/services/reporting/search/read这类报告读取权限。你可以检查Postman中获取Token的请求,看看有没有遗漏这个关键的scope——很多时候都是生成Token时用了支付相关的scope,导致调用报告API时权限不足。再次验证应用功能的开启状态
你提到开启了“Transac...”相关功能,大概率是指“Transaction Search”或“Reporting”权限。务必登录PayPal开发者后台,进入你的应用详情页,确认对应Activity API的权限确实已勾选并保存(有时候勾选后忘记点保存,权限根本没生效)。另外要注意,别选错了功能,要精准对应Activity API的权限选项,不是其他类似的交易功能。检查API端点是否正确
确保你调用的是Activity API的正确沙箱端点:https://api.sandbox.paypal.com/v1/reporting/transactions(或者对应你要调用的具体Activity接口),别不小心用了支付接口的端点,虽然这会报其他错误,但也可以顺手确认下。验证沙箱商家账号的权限
有时候应用权限开了,但沙箱里的商家账号本身没有访问报告的权限。你可以登录沙箱的商家账号后台,尝试手动生成一份活动报告,如果手动都生成不了,那就是账号本身的问题,需要检查沙箱账号的类型和设置是否符合要求。重新生成Bearer Token
如果之前的Token是用旧的scope生成的,直接重新生成一个包含正确报告权限的Token试试——有时候缓存的旧Token会导致权限验证失败,新Token能解决这类问题。
内容的提问来源于stack exchange,提问作者Jacob Bruinsma

