Magento XMLRPC调用失败,“调用参数与签名不匹配”

时间:2013-07-15 11:17:11

标签: c# magento xml-rpc

我想使用Magento API中的函数“catalog.list”(链接:http://www.magentocommerce.com/api/soap/catalog/catalogProduct/catalog_product.list.html

我的调用参数如下所示:

Product.List("mydomain.com/api/xmlrpc", "3345dd3eedc3deadbeef", new object[] { XMLFilter },StoreViewIDAsString);

将此函数与参数“StoreViewIDAsString”一起使用时,它将响应:

623 : Calling parameters do not match signature

我的代理如下:

public static Product[] List(string apiUrl, string sessionId, object[] args, string store_view)
{
   IProduct prox = (IProduct)XmlRpcProxyGen.Create(typeof(IProduct));
   prox.Url = apiUrl;
   return prox.List(sessionId, _catalog_product_list, args,store_view);
}

[XmlRpcMethod("call")]
Product[] List(string sessionId, string method, object[] args,string store_view);

我正在使用Ez.LLC的Magento API Wrapper。

1 个答案:

答案 0 :(得分:1)

我最近在为Magento构建自定义NodeJs API XMLRPC包装器时遇到了这个问题。特别适用于catalog_category.assignedProducts资源。

文档http://devdocs.magento.com/guides/m1x/api/soap/catalog/catalogCategory/catalog_category.assignedProducts.html要求输入整数值类别ID,但它确实喜欢获取整数值类别ID的数组。

我转过身来:

...
APIClient.methodCall('call',
        [sessionId, 'catalog_category.assignedProducts', 8] ...

进入这个:

...
APIClient.methodCall('call',
        [sessionId, 'catalog_category.assignedProducts', [8] ] ...

并消除了这个错误。