0

助けが必要です。私はPHPの専門家ではありませんが、自分のやり方を知っていますが、私の人生では、これに関する問題を見つけることができません.

クライアントには外部データベース (アクセスできない MSSQL データベース) があります。文字列を使用して製品のライセンス キーを生成する CRM ソリューションを使用しています。C# で記述された Web サービスを介してストアド プロシージャにアクセスします。私たちの側には、Web サービスにアクセスしてデータベースに書き込む PHP サイトがあります。

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 月末の時間的制約があります)。

どんな助けでも大歓迎です。

EDIT "skey"=>$skey 修正。ありがとう。

しかし、問題は、エラーが表示されることから、グレーのページしか表示されないことになりました。

4

2 に答える 2

0

提供された 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 が小さいため、これがエラーの原因である可能性があります。よくわかりませんが。

于 2013-08-20T07:14:55.883 に答える