2015-06-07 136 views
0

當我嘗試使用以下代碼使用webservice調用我的本地Magento 1.9時,它似乎給了我訪問被拒絕的錯誤。Magento SOAP訪問被拒絕

我沒有問題使用SOAPUI(或其他肥皂客戶端)來調用相同的地址。

PHP代碼

<?php 
$client = new SoapClient('http://localhost/magento/index.php/api/soap/?wsdl', array('trace' => 1)); 

$session = $client->login('apiuser', 'apikey'); 

echo "REQUEST:\n" . $client->__getLastRequest() . "\n"; 
echo "Response:\n" . $client->__getLastResponse() . "\n"; 
?> 

迴應:

$ php -f catalog_product_list.php 
PHP Fatal error: Uncaught SoapFault exception: [2] Access denied. in /catalog_product_list.php:5 
Stack trace: 
#0 /catalog_product_list.php(5): SoapClient->__call('login', Array) 
#1 /catalog_product_list.php(5): SoapClient->login('apiuser', 'apikey') 
#2 {main} 
    thrown in /catalog_product_list.php on line 4 

我曾使用相同的代碼來調用一個遠程複製,它是確定的。可能是什麼問題?

+0

我不得不回去的管理面板和重新進入API鍵..現在我的PHP代碼工作...但我SOAPUI是不是...哎呀! – NHK

回答

0

這聽起來像是CORS的問題。 (跨源資源腳本)考慮使用谷歌搜索和您的特定開發堆棧。

0

的解決方案是
1.創建一個新的SOAP/XML的RPX角色,說「測試」
2.角色資源只需選擇「全部」的資源訪問(只用於測試)
3.編輯用戶並分配角色爲「測試」