android – SoapFault – faultcode:’1062’faultstring:’运送方式不可用’

前端之家收集整理的这篇文章主要介绍了android – SoapFault – faultcode:’1062’faultstring:’运送方式不可用’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
您好,我正在开发一个使用Magento作为后端的 Android应用程序,而我正在使用magento的SOAP webervice,我已将所有的产品,客户和客户地址信息添加到购物车中,但是当我尝试将运送方式添加到购物车我收到这个错误

SoapFault – faultcode:’1062’faultstring:’运送方式不可用’

这是我正在尝试的代码,请帮我解决这个问题

  1. SoapObject availableShippingMethods = new SoapObject(MAGENTO_NAMESPACE,"shoppingCartShippingList");
  2. availableShippingMethods.addProperty("sessionId",sessionId);
  3. availableShippingMethods.addProperty("quoteId",quoteId);
  4. env.setOutputSoapObject(availableShippingMethods);
  5. androidHttpTransport.call("",env);
  6. Object resultForAvailableShippingMethods = env.getResponse();
  7. Log.d("AvailableShippingMethods",resultForAvailableShippingMethods.toString());

这将给我们这个输出

D / AvailableShippingMethods:shoppingCartShippingMethodEntityArray {item = shoppingCartShippingMethodEntity {code = flatrate_error;载体= flatrate; carrier_title =统一费率;价= 0; }; }

以下是将Shipping方法设置为CartId的代码

  1. SoapObject shippingmethod = new SoapObject(MAGENTO_NAMESPACE,"shoppingCartShippingMethod");
  2. shippingmethod.addProperty("sessionId",sessionId);
  3. shippingmethod.addProperty("quoteId",quoteId);
  4. shippingmethod.addProperty("shippingMethod","flatrate_error");//Code for Flatrate shipping method and it is enabled in magento site
  5. env.setOutputSoapObject(shippingmethod);
  6. androidHttpTransport.call("",env);
  7. Log.d("shippingMethod",shippingmethod.toString());
  8. Object resultforShippingMethod = env.getResponse();
  9. Log.d("ShippingMethod",resultforShippingMethod.toString());

解决方法@H_404_18@
我知道答案已经太迟了,但可能会帮助未来的人…

问题在于magento soap v2的文档…当我通过wsdl链接时,我注意到一些如下所示:

  1. <message name="shoppingCartShippingMethodRequest">
  2. <part name="sessionId" type="xsd:string"/>
  3. <part name="quoteId" type="xsd:int"/>
  4. <part name="method" type="xsd:string"/>
  5. <part name="storeId" type="xsd:string"/>
  6. </message>

你可以看到,有属性方法.其实我们必须添加运送方式…
所以你必须更改ur代码如下…

  1. SoapObject shippingmethod = new SoapObject(MAGENTO_NAMESPACE,"shoppingCartShippingMethod");
  2. shippingmethod.addProperty("sessionId",sessionId);
  3. shippingmethod.addProperty("quoteId",quoteId);
  4. shippingmethod.addProperty("method","flatrate_error");
  5. env.setOutputSoapObject(shippingmethod);
  6. androidHttpTransport.call("",env);
  7. Log.d("shippingMethod",shippingmethod.toString());
  8. Object resultforShippingMethod = env.getResponse();
  9. Log.d("ShippingMethod",resultforShippingMethod.toString());

猜你在找的Android相关文章