我需要连接到使用自签名ssl证书通过https运行的Magento SOAP API v1开发服务器。
鉴于我的soap 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吗?
答案 0 :(得分:0)
我已将其固定为这样:
$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
]);