【问题标题】:SoapClient Access DeniedSoapClient 访问被拒绝
【发布时间】:2026-01-16 06:50:02
【问题描述】:

想要将一些外部 API 连接到 WooCommerce。在附加的文档中,我得到了返回此错误消息的示例代码:

未捕获的 SoapFault 异常:[1] 拒绝访问

add_action('woocommerce_thankyou', 'q_woo_order');
function q_woo_order($order_id)
{
    $c = new SoapClient('https://somewebsite.com/api/soap/?wsdl', array('trace' => true, 'exceptions' => true, 'compression' => SOAP_COMPRESSION_ACCEPT));
    $session = $c->login('user', 'password');
    var_dump($session);
    die;
}

如果我尝试一些随机的用户名和密码,得到这个错误

您提供的用户名或密码不正确

所以我假设登录数据是正确的。

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    URL https://somewebsite.com/api/soap/?wsdl 是否可达?

    我遇到了调用我的网络服务的外部客户端的问题:他无法访问“?wsdl”URL,但它正在使用 wsdl 文件的直接 URL,例如 https://somewebsite.com/api/soap/wsdl/wsdlfile.wsdl

    【讨论】:

    • 是的。对于这个 login() 方法,它有: 登录用户并检索会话 id 我不知道这种格式是否正确