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