【发布时间】:2017-04-13 05:02:51
【问题描述】:
基于https://www.bankid.com/assets/bankid/rp/bankid-relying-party-guidelines-v2.13.pdf
我正在工作curl 命令:
curl https://appapi.test.bankid.com/rp/v4?wsdl -E --cacert /path/to/BankID_SSL_Root_Certification_Authority_TEST.pem --cert /path/to/ServerCertificate.cer --key /path/to/PrivateKey.key
ServerCertificate.cer 和 PrivateKey.key 是使用 openssl 命令从 PFX 证书 (https://www.bankid.com/assets/bankid/rp/FPTestcert2_20150818_102329.pfx) 中提取的。
但我不能让它与 PHP SoapClient 一起工作:
SOAP-ERROR: Parsing WSDL: Couldn't load from 'https://appapi.test.bankid.com/rp/v4?wsdl' : failed to load external entity "https://appapi.test.bankid.com/rp/v4?wsdl"
我将不胜感激。
【问题讨论】:
-
如果你不需要这个 SoapClient 东西,不管是什么,这很容易翻译成原生 php curl_api。 $curlh=curl_init('appapi.test.bankid.com/rp/v4?wsdl'); curl_setopt_array($curlh,array(CURLOPT_SSH_PRIVATE_KEYFILE=>'/path/to/PrivateKey.key', CURLOPT_SSLCERT=>'/path/to/ServerCertificate.cer', CURLOPT_SSLKEY=> "/path/to/PrivateKey.key", ) ); curl_exec($curlh);我认为
-
您好,感谢您的建议。 “SoapClient 的东西”是php.net/manual/en/class.soapclient.php
-
您似乎需要提供证书才能访问 WSDL。 SoapClient 不支持这一点,您只能将证书文件用于实际的 SOAP 调用。但是您可以尝试下载 WSDL 并将其保存在本地,然后使用 SoapClient 指向本地 WSDL 文件。