비누를 사용하여 webservice를 호출하려고하지만 다음 오류가 계속 발생합니다. "경고 : SoapClient :: SoapClient() : Unable to 개인 키 파일을 설정하십시오 ".PHP SoapClient 경고 : SoapClient :: SoapClient() : 비공개 키 파일을 설정할 수 없습니다.
내가 사용하고있는 .cer 파일에 공개 키와 비공개 키만 포함되어 있기 때문에 오류가 있다고 가정합니다. 그러나 나는 .cer 파일을 사용하는 또 다른 방법이 확실하지 않습니다. .cer 파일을 사용하지 않으면 잘 연결할 수 있으며 __getFunctions()
메서드를 사용하면 전화를 걸고 결과를받을 수 있습니다. 그러나, 나는 다른 방법을 사용하려고 할 때 나는 권한이 필요하고 그 문제가 발생합니다. 아래는 내가 사용하려고하는 간단한 코드입니다. 자세한 정보가 필요한 경우 알려 주시기 바랍니다.
ini_set('display_errors',1);
error_reporting(E_ALL);
ini_set('soap.wsdl_cache_enabled', 0);
$username = 'user';
$password = 'pass';
$ns = 'GatewayEDI.WebServices';
$auth = array();
$auth['User'] = new SOAPVar($username, XSD_STRING, null, null, null, $ns);
$auth['Password'] = new SOAPVar($password, XSD_STRING, null, null, null, $ns);
$headerBody = new SOAPVar($auth, SOAP_ENC_OBJECT);
$header = new SOAPHeader($ns, 'AuthSOAPHeader', $headerBody);
$client=new SoapClient('https://url/Service.asmx?WSDL',
array(
'local_cert' => 'file.cer'
));
$client->__setSOAPHeaders(array($header));
$param = array(
'X12Input'=>"testing",
"GediPayerID"=>"52",
"ResponseDataType"=>"Xml"
);
//this leads to private key error
echo $result = $client->DoInquiryByX12Data($param,$header);
이 인증서의 개인 키가 없습니다. 개인 키를 만들어 인증서에 추가 할 수 있습니까? – IHateSoap
아니요. 암호를 제거한 후에 .cer/.pem 파일에 추가 할 수 있습니다. , 개인 키가 일치해야합니다. 당신이 처음에 당신에게 인증서를 준 사람으로부터 얻을 수 없습니까? – Owen
그들은 개인 키가 없다고 주장하고 있지만, 개인 키가 없으면 어떻게 작동하는지 보지 못합니다 인증서를 제거하려고하면 전혀 사용하지 않으면 인증 오류가 발생합니다. 개인 키없이 작동 할 수있는 방법을 모른다는 말입니까? – IHateSoap