我试图将PHP与远程SOAP XML服务连接,该服务使用行业标准WSE身份验证标头(UserName令牌)。
PHP的原生SOAP客户端并不是那么好用一些更复杂的标题选项。
作为替代方法,我在WSDL文件上使用了wsdl2phpgenerator来生成类文件等,但是在发送请求时,标头未被正确包含。无论是直接使用Soap Client还是Class文件,我都会不断收到以下消息。
keyPath
在标题中," CreateDateTime" (呼叫时客户端上的日期和时间。)是唯一必填字段,加上身份验证。
我在这里找到了创建身份验证令牌的示例,但它似乎没有太大区别: https://gist.github.com/Turin86/5569152
所以无论我选择什么方法,我都试图克服缺少标题的问题。
还试过这个:
ExceptionId e6203b1e-9450-4408-b63b-8ebdbfef169a - Exception: Could not find the Soap Header - make sure you have the Soap Header defined under the 'http://www.w3.org/2003/05/soap-envelope' namespace
答案 0 :(得分:0)
添加'soap_version'=> SOAP_1_2, 作为SoapClient的配置选项。