[英]PHP Soap Client Key Error
我需要一些帮助。 我不是PHP专家,但我知道自己的出路,但是对于我一生,我无法找到问题所在。
我们的客户端上有一个外部数据库(无权访问的MSSQL数据库)。 我们使用CRM解决方案,该解决方案使用字符串为他们的产品生成许可证密钥。 我们通过用C#编写的Web服务访问存储过程。 在我们这边,我们有一个PHP站点,可以访问Web服务以写入数据库。
我在PHP中的代码如下所示:
$skey = "FDGK:LKss#()#84$$$";
$productID = 5;
$data = "D359;00011,P,D359ZZ,SQKGLTKQKQYZHRA,ALNR,009350,20140228,005392;DEWALDH;D359;0";
try
{
$wsdl = "http://connectedservices.sagesouthafrica.co.za/serv/communicate.asmx?wsdl";
$client = new SoapClient($wsdl);
$result = $client->__soapCall("InsertSerialAuthProduct", array("InsertSerialAuthProduct" => array("Skey"=>$skey,"ProductID" => $productID ,"Data"=>$data)));
} catch (SoapFault $E)
{
echo $E->faultstring;
}
由于某种原因,每次我尝试生成产品代码时,都会产生错误:
Server was unable to process request. ---> Key Error.
php的版本是5.2(我正忙着将整个内容重写为asp.net,但是我在8月底对此有时间限制)
任何帮助将不胜感激。
编辑 “ skey” => $ skey已修复。 谢谢。
但是问题从给我一个错误到只显示一个灰色页面而已。
问题:
"Skey"=>$skey,
应为"skey"=>$skey,
$client->__soapCall("InsertSerialAuthProduct", array(
"InsertSerialAuthProduct" => array(
"skey"=>$skey, // Not Skey
"ProductID" => $productID ,
"Data"=>$data)
)
);
您可以这样打电话:
$wsdl = "http://connectedservices.sagesouthafrica.co.za/serv/communicate.asmx?wsdl";
$client = new SoapClient($wsdl);
$result = $client->InsertSerialAuthProduct(array(
"skey"=>$skey,
"ProductID" => $productID ,
"Data"=>$data)
);
我只是打开您提供的WSDL链接,然后根据我看到的内容更改行
$result = $client->__soapCall("InsertSerialAuthProduct", array("InsertSerialAuthProduct" => array("Skey"=>$skey,"ProductID" => $productID ,"Data"=>$data)));
至
$result = $client->__soapCall("InsertSerialAuthProduct", array("InsertSerialAuthProduct" => array("skey"=>$skey,"ProductID" => $productID ,"Data"=>$data)));
正如我在WSDL中看到的那样,skey很小,所以这可能是导致错误的原因。 虽然不确定。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.