PayPal沙箱Void授权失败(PERMISSION_DENIED)但Capture可正常执行
PayPal沙箱中授权订单Capture正常但Void失败的权限问题
问题描述
我正在使用PayPal v2 Orders API测试沙箱支付流程。创建intent=AUTHORIZE的订单并完成授权后,尝试执行Capture(释放)或Void(取消)授权操作。Capture可正常执行,但Void操作失败,报错信息如下:
{ "name": "NOT_AUTHORIZED", "message": "Authorization failed due to insufficient permissions.", "debug_id": "xxxxxxxx", "details": [ { "issue": "PERMISSION_DENIED", "field": "authorization_id", "value": "xxxxxxxx", "description": "You do not have permission to access or perform operations on this resource.", "location": "path" } ] }
使用沙箱账户,OAuth令牌来自沙箱商家客户端ID和密钥。请问为何沙箱允许对同一授权执行Capture却拒绝Void?如何在沙箱中测试Void操作?
原因分析与解决办法
- 权限范围不匹配:Capture和Void操作要求的OAuth权限范围不同。Capture仅需
payment.capture权限,而Void授权必须拥有payment.authorization权限。检查你的沙箱应用配置,确保已在PayPal开发者后台为应用添加payment.authorization权限,重新生成OAuth令牌后再测试。 - 授权状态限制:如果该授权已经被执行过部分Capture,沙箱环境中可能不允许Void操作——Void仅适用于未被Capture过的完整授权。若已执行部分Capture,可改为全额Capture后发起退款,而非Void。
- 账户权限验证:确认生成OAuth令牌的沙箱商家账户是该授权订单的创建方,避免使用第三方账户的令牌。即使第三方账户有Capture权限,也可能没有Void该授权的权限。
- API端点检查:确保Void操作调用的是正确的端点:
POST /v2/payments/authorizations/{authorization_id}/void,不要误用订单或Capture相关的端点。
内容的提问来源于stack exchange,提问作者efenatuyo
相关产品推荐
相关产品推荐

