如何在android中使用SOAP API获取带有过滤器的magento订单列表?

如何在android中使用SOAP API获取带有过滤器的magento订单列表?,magento,soap,Magento,Soap,它总是只在android中返回已完成的订单 如何在android中编写此php代码以获取结果 $filters = array(array( 'filter' => array( array( 'key' => 'status', 'value' => 'pending' )))); 发送到soap客户端 re

它总是只在android中返回已完成的订单

如何在android中编写此php代码以获取结果

$filters = array(array(
            'filter' => array(
                array(
                    'key' => 'status',
                    'value' => 'pending'
                ))));
发送到soap客户端

request = new SoapObject(NAMESPACE, "salesOrderList");
request.addProperty("sessionId",sessionId );
request.addProperty("filters", filters);

您可以使用android中的库执行以下操作

// NAMESPACE - specify your namespace
// sessionId - get by calling the login web service
// SALES_ORDER_LIST - web service to get sales order list

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = false;
envelope.xsd = SoapSerializationEnvelope.XSD;
envelope.enc = SoapSerializationEnvelope.ENC;

SoapObject entity = new SoapObject(NAMESPACE, "associativeEntity");
entity.addProperty("key", "status");
entity.addProperty("value", "processing");

SoapObject filter = new SoapObject(NAMESPACE, "associativeArray");
array.addProperty("associativeEntity", entity);

SoapObject filters = new SoapObject(NAMESPACE, "filters");
filter.addProperty("filter", filters);

SoapObject salesOrderList = new SoapObject(NAMESPACE, "salesOrderList");
requestCart.addProperty("sessionId", sessionId);
requestCart.addProperty("filters", filters);

env.setOutputSoapObject(salesOrderList);
androidHttpTransport.call(SALES_ORDER_LIST, envelope);

result = env.getResponse();
Log.d("List of Products", result.toString());

使用ksoap2 android库对magento soap进行复杂筛选

           SoapSerializationEnvelope env = new SoapSerializationEnvelope(
                    SoapEnvelope.VER11);

            env.dotNet = false;
            env.xsd = SoapSerializationEnvelope.XSD;
            env.enc = SoapSerializationEnvelope.ENC;

            SoapObject request = new SoapObject(NAMESPACE,
                    "salesOrderList");

            SoapObject value = new SoapObject(NAMESPACE, "associativeEntity");
            // complex filter , for more info http://devdocs.magento.com/guides/m1x/api/soap/sales/salesOrder/sales_order.list.html
            value.addProperty("key", "in");
            value.addProperty("value", "18700051200102,19200135301230");

            SoapObject complexFilter = new SoapObject(NAMESPACE, "complexFilter");
            complexFilter.addProperty("key", "increment_id");
            complexFilter.addProperty("value", value);

            SoapObject filterArray = new SoapObject(NAMESPACE, "complexFilterArray");
            filterArray.addProperty("item",complexFilter);

            SoapObject filters=new SoapObject(NAMESPACE, "filters");
            filters.addProperty("complex_filter", filterArray);

            request.addProperty("sessionId", params[0]);
            request.addProperty("filters", filters);

            env.setOutputSoapObject(request);

            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

            androidHttpTransport.call("", env);
            SoapObject result = (SoapObject) env.getResponse();

            Log.i("MessageOrderList", result.toString());