使用客户Rest API凭证获取WooCommerce订单报403错误如何解决
排查解决步骤
- 确认API密钥权限:创建WooCommerce REST API密钥时,需确保权限级别选择了读取或读写,如果仅选择写入权限,将无法拉取订单、商品等资源,直接返回403报错。
- 调整用户角色权限:默认WordPress客户角色没有REST API访问私有资源的权限,可通过角色编辑插件为对应客户的角色添加
read_private_shop_orders、read_private_products权限,也可临时将该用户角色调整为店铺经理,验证是否为权限不足导致的问题。 - 补充接口请求参数:直接调用
/wp-json/wc/v3/orders接口默认会请求全量订单数据,该权限仅管理员拥有,需在请求URL后追加customer参数指定对应用户的WordPress ID,示例:/wp-json/wc/v3/orders?customer=123(将123替换为对应客户的用户ID),即可拉取该用户专属的订单列表。 - 调整服务器配置:如果使用Basic Auth方式传参,多数Nginx/Apache服务器默认会拦截Authorization请求头,不会传递给后端PHP处理:
- Nginx环境需在站点配置文件中添加
fastcgi_pass_header Authorization; - Apache环境需在站点根目录.htaccess文件中添加
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
- Nginx环境需在站点配置文件中添加
- 排查插件冲突:临时禁用站点的安全防护、权限管理、REST API拦截类插件,部分安全插件会默认拦截WooCommerce REST API请求,触发403报错。
相关配置截图


内容的提问来源于stack exchange,提问作者Rajkumar Gour
相关产品推荐
相关产品推荐

