【发布时间】:2012-07-14 23:45:27
【问题描述】:
我正在尝试使用 XMLRPC 在 Android 应用程序中使用 Magento API 创建销售订单发票。我正在使用方法“sales_order_invoice.create”创建发票。此方法在对magento wiki中提到的给定数量的响应。但问题是magento商店上的发票数量没有更新。其他事情是订单状态正在更改为正确的处理中,并且发票中也存在已创建发票的条目商店列表,但支付金额显示为 $0.0,这是不正确的。
不知道在调用sales_order_invoice.create之前需要调用其他方法还是方法有问题??
下面是我调用方法的部分代码:
import java.util.HashMap;
import org.xmlrpc.android.XMLRPCClient;
import org.xmlrpc.android.XMLRPCException;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MagentoStore extends Activity {
private XMLRPCClient client;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String sessionId = "";
client = new XMLRPCClient("http://www.mystore.com/index.php/api/xmlrpc");
try {
sessionId = (String)client.call("login", "tester", "tester");
Log.d("MY_XMLRPC_SUCCESS_SESSION_ID", sessionId);
}
catch (XMLRPCException e) {
Log.d("MY_XMLRPCException_MSG", e.getMessage());
}
Object salesorderInfo = null;
Object[] methodParams = new Object[]{"100000028"};
Object[] callParams = new Object[]{sessionId,"sales_order.info", methodParams};
String salesorderinvoice= null;
try {
salesorderInfo = (Object)client.callEx("call",callParams);
HashMap map = (HashMap)salesorderInfo;
Object[]items=(Object[])map.get("items");
for(Object item :items)
{
HashMap itemlist=(HashMap)item;
String item_id=(String)itemlist.get("item_id");
int itemids=Integer.parseInt(item_id);
String base_price=(String)itemlist.get("base_price");
if(base_price.equals("0.0000"))
{
continue;
}
String name=(String)itemlist.get("name");
Double qty=1.0;
String qty_ordered =(String)itemlist.get("qty_ordered");
String qty_invoiced=(String)itemlist.get("qty_invoiced");
Object[] methodParams1 = new Object[]{"100000028",itemids,qty};
Object[] callParams1 = new Object[]{sessionId,"sales_order_invoice.create", methodParams1};
salesorderinvoice= (String)client.callEx("call",callParams1);
}
} catch (Exception e) {
Log.d("APP_INFO", "Exception: " + e.getMessage());
}
}
}
有人有什么想法吗?? 提前致谢
【问题讨论】:
-
您是否没有收到此错误:: 07-17 06:23:58.895: WARN/System.err(25812): java.net.UnknownHostException: Host is unresolved: cws16:80 07-17 06:23:58.916: WARN/System.err(25812): at java.net.Socket.connect(Socket.java:1037) 07-17 06:23:58.926: WARN/System.err(25812): at org .apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:117) 07-17 06:23:58.926: WARN/System.err(25812): at org.apache.http.impl.conn.DefaultClientConnectionOperator。 openConnection(DefaultClientConnectionOperator.java:129) 07-17 06:23:58.926: WARN/System.err(25812): at org.apache.
-
我使用与您相同的代码,但出现此错误...请 Krushnakant 帮助我...Regargs。
-
我正在使用我的本地服务器。我知道我只有 url 有问题...我使用 url 作为“cws24/magento/index.php/api/xmlrpc"...and 它给了我未知主机异常
-
@Androider:不,我没有收到任何错误。我得到了正确的响应,但没有在 magento 商店创建发票。我认为你的权利可能是你的 Url 有问题。您是将此代码用于 Java 应用还是 Android 应用??
-
我正在 Magento 网站上创建一个 Android 应用
标签: android api magento xml-rpc invoice