PHP Soap客户端密钥错误

PHP Soap客户端密钥错误,php,wsdl,soap-client,Php,Wsdl,Soap Client,我需要一些帮助。我不是PHP专家,但我知道自己的方法,但就我的一生而言,我找不到这个问题 我们有一个外部数据库(我们无权访问的MSSQL数据库)驻留在我们的客户机上。我们使用CRM解决方案,该解决方案使用字符串为其产品生成许可证密钥。我们通过用C#编写的web服务访问存储过程。在我们这边,我们有一个PHP站点,它访问web服务以写入数据库 我的PHP代码如下所示: $skey = "FDGK:LKss#()#84$$$"; $productID = 5; $data = "D359;00011,

我需要一些帮助。我不是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))); 


正如我在WSDL中看到的,s在skey中很小,所以这可能是错误的原因。不过不确定。

我已经编写了一个C#应用程序来测试Web服务,它可以完美地写入到表中。所以问题就存在于代码的某个地方。现在的问题是什么。看起来页面没有呈现是因为一个错误。我现在已经在错误报告上做了测试,看看它是否是语法错误。但真正奇怪的是,当我把“skey”设置为“skey”时,它工作了,并给了我一条错误消息,但现在在我纠正拼写错误后,它给了我一张空白页。谢谢大家。现在一切都好了。是一个语法错误。
$result = $client->__soapCall("InsertSerialAuthProduct", array("InsertSerialAuthProduct" => array("skey"=>$skey,"ProductID" => $productID ,"Data"=>$data)));