我想從c#編程Magento。 在第一步中,我將服務引用添加到Visual Studio中的項目中。但我沒有MagentoService類。當我下載wdsl文件並通過Visual Studio命令行中的wsdl.exe進行轉換時,我擁有它。 所以,在與服務引用的情況下,我的代碼看起來是這樣的:用SOAP和c編程Magento#
MagentoSer.Mage_Api_Model_Server_HandlerPortTypeClient client = new MagentoSer.Mage_Api_Model_Server_HandlerPortTypeClient();
var session= client.login("id", "password");
client.call(session, "catalog_category.tree", null);
client.endSession(session);
一切正常,沒事。 但是,當我試圖使用
MagentoSer.Mage_Api_Model_Server_HandlerPortTypeClient client = new MagentoSer.Mage_Api_Model_Server_HandlerPortTypeClient();
var session= client.login("id", "password");
client.call(session, "product_stock.list", "qqaz");
client.endSession(session);
異常出現「錯誤操作‘稱之爲’反序列化的回覆消息的身體」 指定的類型無法識別:名稱=「地圖」,命名空間=」 http://xml.apache.org/xml-soap 」在。「}
當從PHP一切測試工作確定。 我發現這兩篇文章 http://codeblow.com/questions/php-web-service-in-c-invoke-function-returns-null/ PHP Web Service in C# : Invoke() function returns null 但我不能趕上大局。
那些是關於對象ARGS在
public object call(string sessionId, string resourcePath, object args);
或約從功能輸出? 還有一件事。在搜索Web時,我找到了代碼示例(Magneto help),使用了奇怪的數組(如complexFilter)。如果通過Visual Studio連接到wsdl文件,我如何獲得它們?這是否在Magento管理員權限中向我公開?
問候
普熱Staniszewski
看起來像來自magento的soap v1,如果你有可能性,在magento中使用soap v2 api,那麼從c#使用它會更好。如果沒有,我有一些代碼,適用於v1。 – Giedrius