我想从Magento商店的Android客户端调用Web服务。
我现在有很好的成功,但没有问题。转换错误
我想这个数组被转换成适当的java对象。
$arrProducts = array(
array(
"product_id" => "1",
"qty" => 2
),
array(
"sku" => "testSKU",
"quantity" => 4
)
);
$resultCartProductAdd = $proxy->call($sessionId, "cart_product.add",
array($shoppingCartId, $arrProducts));
上面的PHP代码已采取从here
我都试过了。
Object []addtocart=null;
Log.i("Product Id ", Utils.product_list.get(rowid).getp_Id());
Object[] productdetails1=new Object[]{Utils.product_list.get(rowid).getp_Id(),2};
//Object[] productdetails2=new Object[]{productdetails1};
Object param1[]=new Object[]{Utils.shoppingCartId,productdetails1};
Object param[]=new Object[]{Utils.sessionId,"cart_product.add",param1};
try {
addtocart=(Object[])client.callEx("call", param);
} catch (XMLRPCException e) {
e.printStackTrace();
}
但结果纳入错误,如:
org.cws.magentoAnd.xmlrpc.XMLRPCFault: XMLRPC Fault: One item of products do not have identifier or sku [code 1022]
at org.cws.magentoAnd.xmlrpc.XMLRPCClient.callEx(XMLRPCClient.java:228)
at org.cws.magentoAnd.ProductModule.productdetails$CartFunctions.doInBackground(productdetails.java:245)
at org.cws.magentoAnd.ProductModule.productdetails$CartFunctions.doInBackground(productdetails.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:185)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
at java.lang.Thread.run(Thread.java:1019)
如果有PHP的双重知识有人和Java会帮我解决这个问题,我会很高兴。
你可以分享你的wsdl,它会有帮助。 –
@sharadendusinha:查看此。 http://www.magentocommerce.com/wiki/doc/webservices-api/api/cart#cart_product.add 其实我没有生成wsdl,我使用的是Magento的内置方法。 –