如何在本地环境测试WooCommerce REST API?
解决WooCommerce REST API 401权限错误的步骤
1. 确认API凭证有效性
先在WooCommerce后台生成合规的API密钥:
- 进入WooCommerce → 设置 → 高级 → REST API
- 点击「添加密钥」,填写描述,关联有权限的用户(比如管理员),设置权限为「只读」或「读/写」(仅查看订单选只读即可)
- 保存生成的消费者密钥和消费者密码,这两个是验证核心凭证
2. 用正确验证方式发起请求
WooCommerce REST API支持两种验证方式,本地测试任选其一:
方式一:基本身份验证(推荐)
将「消费者密钥:消费者密码」转成Base64编码,放在请求头的Authorization字段里。用curl测试的命令示例:
curl -u "你的消费者密钥:你的消费者密码" http://myproject.test/wp-json/wc/v2/orders
方式二:URL参数验证
直接在API地址后拼接凭证参数:
http://myproject.test/wp-json/wc/v2/orders?consumer_key=你的消费者密钥&consumer_secret=你的消费者密码
3. 检查Nginx配置是否拦截验证头
Linux下Nginx默认可能丢弃Authorization请求头,需在站点Nginx配置文件中添加以下内容,确保请求头能传递到PHP:
location ~ \.php$ { # 保留原有配置,新增下面这行 fastcgi_pass_header Authorization; }
修改后重启Nginx:
sudo systemctl restart nginx
4. 确认用户权限
确保生成API密钥的用户拥有对应权限:
- 进入WordPress后台 → 用户 → 所有用户,找到关联用户
- 确认用户角色为管理员,或拥有
view_woocommerce_reports、edit_shop_orders等订单相关权限(可通过用户角色编辑器插件调整)
5. 排查HTTPS证书问题(若本地启用HTTPS)
如果本地站点用了HTTPS,测试时可跳过证书验证,curl命令加-k参数:
curl -k -u "你的消费者密钥:你的消费者密码" https://myproject.test/wp-json/wc/v2/orders
内容的提问来源于stack exchange,提问作者Md Masud
相关产品推荐
相关产品推荐

