これは、Magento api を使用する最初の試みです。C#.NET を使用して Magento ストアに接続しようとしています。.NET Framework 3.5 を使用しています。AddServiceReference を使用して、以下のリンクを追加しました。
http://www.MyServer.com/index.php/api/v2_soap?wsdl=1
また、システム -> 構成 -> Magento Core API でWS-I 互換性を「はい」に設定します。
しかし、自分のページでサービスを参照すると、サービスのオブジェクトを生成できません。接続する「Mage_Api_Model_Server_Wsi_HandlerPortType」オブジェクトを探しています。
マイマジェントサービス。
(MyMagentoService の後に . を押してもオブジェクトが表示されません。理由はわかりません。)
システム -> 構成 -> Magento Core API -> WS-I 互換性を NO に設定すると、以下のようにオブジェクトを取得できます。
MagentoService.Mage_Api_Model_Server_V2_HandlerPortTypeClient ctx = new Mage_Api_Model_Server_V2_HandlerPortTypeClient();
string sessionID = ctx.login("Username", “Password");
しかし、その後 ctx.login はエラーをスローします
The content type text/html of the response message does not match the content type of the binding (text/xml; charset=utf-8).
If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly.
The first 361 bytes of the response were: ‘<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode>0</faultcode>
<faultstring>SOAP extension is not loaded.</faultstring>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>'
このエラーについては、WS-I 互換性を「YES」に設定する必要があるため、Google で検索すると回答が得られます。どうすればいいのかわからない。:(