You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress插件调用WooCommerce REST API遇401认证错误求助

排查WooCommerce REST API同站调用401认证失败问题

以下是针对该问题的具体排查步骤:

  • 检查Base64编码准确性
    确保编码的是consumer_key:consumer_secret的原始拼接字符串,不要添加多余空格、引号或换行符。建议直接在代码中用base64_encode( $consumer_key . ':' . $consumer_secret )生成编码值,避免手动编码出错。同时对比Postman中生成的认证头值,确认两者完全一致。

  • 确认请求头格式正确
    确保wp_remote_get的请求头参数设置无误,正确示例代码如下:

    $consumer_key = '你的消费者密钥';
    $consumer_secret = '你的消费者密钥密码';
    $api_url = 'https://你的站点域名/wp-json/wc/v3/products';
    
    $headers = array(
        'Authorization' => 'Basic ' . base64_encode( $consumer_key . ':' . $consumer_secret )
    );
    
    $response = wp_remote_get( $api_url, array( 'headers' => $headers ) );
    

    注意Authorization头必须是Basic 加上编码值的完整格式,不要拆分字段。

  • 排查WordPress权限与插件拦截

    • 若代码在未登录用户访问的页面执行,需确认API密钥权限设置为「只读」(或对应产品列表访问权限),同时检查WooCommerce是否允许未登录用户查看产品列表。
    • 临时禁用安全类插件(如防火墙、权限管理插件),测试是否是插件拦截了请求。
  • 验证API端点与协议
    确保调用的是HTTPS协议的正确端点,比如https://your-site.com/wp-json/wc/v3/products,不要使用HTTP协议。同时对比Postman中的请求URL,确保路径、查询参数完全一致。

  • 调试实际发送的请求头
    使用wp_remote_retrieve_headers( $response )打印请求返回的响应头,或者开启WordPress调试日志(在wp-config.php中设置WP_DEBUG和WP_DEBUG_LOG为true),查看完整请求详情,确认Authorization头是否被正确传递、是否存在被篡改的情况。

内容的提问来源于stack exchange,提问作者Aman Mohammed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 14:40:29