我需要连接到 Magento SOAP API v1 开发服务器,该服务器使用自签名 ssl 证书通过 https 运行。
鉴于我的肥皂API网址是:https://my-store.com/index.php/api/soap/?wsdl
启动肥皂客户端的传统方式如下:
$client = new SoapClient($soap_api_url);
这会产生以下错误:
SOAP-错误:正在解析 WSDL:无法从以下位置加载 'https://my-store.com/index.php/api/soap/?wsdl'
我认为错误一定是由于自签名证书造成的,所以我尝试了另一种方法,如下所示:
$context = stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
$client = new SoapClient(null, [
'location' => $soap_api_url,
'uri' => 'urn:Magento',
'stream_context' => $context
]);
这不再抱怨无法加载 WSDL,现在返回此错误:
版本错误
我认为问题出在连接选项中的
uri
;知道如何告诉这段代码我想连接到 magento soap api 的 v1 吗?
我已经这样修复了:
$context = stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
$client = new SoapClient($soap_api_url, [
'stream_context' => $context
]);