SOAP-соединение с веб-сервисом с аутентификацией из php

1

У меня есть wsdl: https://www.dropbox.com/s/juprwr1ywqtbry5/wsdl.xml?dl=0

Я пытаюсь сделать это:

$ws_params = array('usuario' => "admin", 'clave' => "123456");
    $client = new SoapClient("http://ws_min.mindtec.ar/ws_cnv/wscnv.asmx?wsdl");
    $header    = new SoapHeader("http://tempuri.org/", 'credencialcnv', $ws_params);
    $client->__setSoapHeaders($header);
    $res = $client->obtenerCNV_OPS(array("sFecha"=>"20151110"));
    var_dump($res);

Я получаю это:

 object(stdClass)#3 (1) {
  ["obtenerCNV_OPSResult"]=>
  object(stdClass)#4 (0) {
  }
}

Я получаю пустой объект, так как веб-служба не выполняет настройки аутентификации. С другой стороны, я могу легко подключиться к Visual Basic или.net, используя следующее:

Dim ws As New wscnv.wscnv
Dim oCredencial As New wscnv.CredencialCNV
oCredencial.usuario = "usuario123"
oCredencial.clave = "clave123"
ws.CredencialCNVValue = oCredencial
Dim listCNV As Array
listCNV = ws.obtenerCNV(txtFecha.Text)

Или из С#:

wscnv.wscnv ws = new wscnv.wscnv();
wscnv.CredencialCNV oCredencial = new wscnv.CredencialCNV();
oCredencial.usuario = "usuario123";
oCredencial.clave = "clave123";
ws.CredencialCNVValue = oCredencial;
Array listCNV = null;
listCNV = ws.obtenerCNV(txtFecha.Text);

Что я делаю не так?

Теги:
authentication
soap
web-services

1 ответ

0

Попробуйте следующее:

$client = new SoapClient("http://ws_min.mindtec.ar/ws_cnv/wscnv.asmx?wsdl");
$hdb = array( 'usuario' => 'username', 'clave' => 'password');
$header = new SoapHeader("http://tempuri.org/", 'credencialcnv', $hdb);
$client->__setSoapHeaders($header);
$fcn_param  = array('sFecha' => "20151110");
$r = $client->obtenerCNV_OPS($fcn_param);
var_dump($r);

и, пожалуйста, расскажите мне о результатах.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню