肥皂验证失败
Soap authentification failed
我习惯于为 SOAP 调用编写 PHP 代码
这是我的代码
<?php
$client = new SoapClient("http://www.fma.fr/webservices_comparateurs/tarification_sante_comparateurs.asmx?wsdl");
$param = array('NomUtilisateur' => 'XXXXXX','MotDePasse' => 'XXYYZZ','ContenuDuMessage' => '');
$values = $client->TariferSante($param);
var_dump($values);
?>
当我执行脚本时,我收到一条身份验证错误消息:
object(stdClass)#2 (1) { ["TariferSanteResult"]=> string(109)
"err_authentification" }
使用的参数是真的,你可以用这个试试link:
http://www.fma.fr/webservices_comparateurs/tarification_sante_comparateurs.asmx?op=TariferSante
更新答案:
我尝试了这段代码并且有效
$options = array(
'uri'=>'http://schemas.xmlsoap.org/soap/envelope/',
'style'=>SOAP_RPC,
'use'=>SOAP_ENCODED,
'soap_version'=>SOAP_1_1,
'cache_wsdl'=>WSDL_CACHE_NONE,
'connection_timeout'=>15,
'trace'=>true,
'encoding'=>'UTF-8',
'exceptions'=>true,
);
class TariferSante {
public $nomUtilisateur;
public $motDePasse;
public $contenuDuMessage;
}
$client = new SoapClient("http://www.fma.fr/webservices_comparateurs/tarification_sante_comparateurs.asmx?wsdl",$options);
$param = new TariferSante();
$param->nomUtilisateur = "XXXXXXX";
$param->motDePasse = "XXYYZZ";
$param->contenuDuMessage = "";
$values = $client->TariferSante($param);
echo "Request".htmlspecialchars($client->__getLastRequest());
var_dump($values);
我在使用 Teradata Soap 时遇到了同样的问题,我认为它需要通过 http 进行基本授权 - 我的解决方案是:
$opts = array();
$opts['login'] = 'username';
$opts['password'] = 'secretpassword';
$opts['trace'] = 1;
$opts['authentication'] = SOAP_AUTHENTICATION_BASIC;
$url = "https://example.com/vx?wsdl";
$client = new SoapClient($url, $opts);
我可以使用它。
在这里查看我的讨论:
我习惯于为 SOAP 调用编写 PHP 代码 这是我的代码
<?php
$client = new SoapClient("http://www.fma.fr/webservices_comparateurs/tarification_sante_comparateurs.asmx?wsdl");
$param = array('NomUtilisateur' => 'XXXXXX','MotDePasse' => 'XXYYZZ','ContenuDuMessage' => '');
$values = $client->TariferSante($param);
var_dump($values);
?>
当我执行脚本时,我收到一条身份验证错误消息:
object(stdClass)#2 (1) { ["TariferSanteResult"]=> string(109) "err_authentification" }
使用的参数是真的,你可以用这个试试link: http://www.fma.fr/webservices_comparateurs/tarification_sante_comparateurs.asmx?op=TariferSante
更新答案: 我尝试了这段代码并且有效
$options = array(
'uri'=>'http://schemas.xmlsoap.org/soap/envelope/',
'style'=>SOAP_RPC,
'use'=>SOAP_ENCODED,
'soap_version'=>SOAP_1_1,
'cache_wsdl'=>WSDL_CACHE_NONE,
'connection_timeout'=>15,
'trace'=>true,
'encoding'=>'UTF-8',
'exceptions'=>true,
);
class TariferSante {
public $nomUtilisateur;
public $motDePasse;
public $contenuDuMessage;
}
$client = new SoapClient("http://www.fma.fr/webservices_comparateurs/tarification_sante_comparateurs.asmx?wsdl",$options);
$param = new TariferSante();
$param->nomUtilisateur = "XXXXXXX";
$param->motDePasse = "XXYYZZ";
$param->contenuDuMessage = "";
$values = $client->TariferSante($param);
echo "Request".htmlspecialchars($client->__getLastRequest());
var_dump($values);
我在使用 Teradata Soap 时遇到了同样的问题,我认为它需要通过 http 进行基本授权 - 我的解决方案是:
$opts = array();
$opts['login'] = 'username';
$opts['password'] = 'secretpassword';
$opts['trace'] = 1;
$opts['authentication'] = SOAP_AUTHENTICATION_BASIC;
$url = "https://example.com/vx?wsdl";
$client = new SoapClient($url, $opts);
我可以使用它。
在这里查看我的讨论: