2013-10-24 74 views
0

我都是新來的肥皂,我只知道我在做什麼。任何試圖解決這個問題或找到關於什麼是什麼的描述都是徒勞的。我似乎無法擺脫不斷嘮叨的異常:SoapFault異常:[500]

SoapFault exception: [500] Username required in path\index.php:38<br /> 
Stack trace:<br /> 
#0 path\index.php(38): SoapClient->__soapCall('createPlayer', Array)<br /> 
#1 {main} 

的WSDL是在這裏 - http://www.laifacai.com/soap/gameprovider?wsdl

而且這是在我的PHP。

$soap_options = array('trace' => 1, 'exceptions' => 1); 
$client = new SoapClient("http://www.laifacai.com/soap/gameprovider?wsdl", array('login' => "user", 'password' => "pass")); 

var_dump ($client->__getFunctions()); 

if (!class_exists('SoapClient')){ 

     die ("You haven't installed the PHP-Soap module."); 

} else { 

    try { 

     $res = $client->__soapCall('createPlayer', array('username'=>'mstest1', 'password'=>'12345678'))); 

    } catch (SOAPFault $f) { 

     echo "<pre>" . $f . "</pre>"; 

    } 

} 

Basicaly,我有,我想處理wsld的一些方法。我雖然createPlayer將是最簡單的,我可以從那裏得到的基礎上我學到了什麼,但我不明白,我不知道什麼是錯的,我找不到它。如果我傳遞一個空數組或完整數組,那麼它就不重要,總是有相同的「用戶名請求」。

編輯:編輯的Wsld鏈接

+0

你可以在你的問題中添加WSDL,你給出的鏈接不會給出WSDL。 – eis

+0

編輯,souhld現在工作。 – MSthunder1

回答

0

它說「需要用戶名」,所以請嘗試提供它。目前您只提供username(請注意較低的上限)。 SOAP區分大小寫。

另外,我覺得你的

$res = $client->__soapCall('createPlayer', 
    array('username'=>'mstest1', 'password'=>'12345678'))); 

應該

$SoapCallParameters = array('username'=>'mstest1', 'password'=>'12345678'); 
$res = $client->__soapCall('createPlayer', 
    array('parameters'=>$SoapCallParameters)); 

根據您的WSDL文檔,你應該提供

array(
    'agentid' 
    'username' 
    'password' 
    'currencycode' 
    'countrycode' 
    'nickname' 
    'fname' 
    'lname' 
) 

爲的createPlayer,所以只是用戶名密碼不是e nough。

+0

哦對不起 - 我也這樣做了,沒有區別,沒有成功。 – MSthunder1

+0

@ MSthunder1你做了參數改變嗎? – eis

+0

這樣做,謝謝! – MSthunder1

相關問題