Intereting Posts
Android Lint не видит неиспользованные png-чертежи Файл манифеста Android со свойствами из другого файла свойств Ошибка Android Studio при нажатии на монитор устройства Android Почему регистрация IabBroadcastReceiver в действии плохая идея? Студия Android добавляет нежелательное разрешение после запуска приложения на реальном устройстве Использование привязки данных в android error: package *. *. Databinding не существует Как использовать API телеграмм для создания приложения чата? Воспроизведение видео с помощью JavaCV и FFmpeg Как я могу сделать свой ArrayAdapter следующим за шаблоном ViewHolder? Android StrictMode Throwable: явный метод завершения «конец» не вызван Самый быстрый способ читать долго из файла? Можете ли вы разработать Android-программы на Android-устройстве Android-планшета Android ProgessBar при загрузке WebView Невозможно получить PDF-файл в виде двоичных данных Добавить .idea / libraries в .gitignore с Android Studio (и Gradle) – хорошая идея?

SoapFault – faultcode: «1062» faultstring: «Способ доставки недоступен»

Привет, я разрабатываю приложение для Android, которое использует Magento в качестве бэкэнд, и я использую web-сервис SOAP magento. Я добавил всю информацию о продукте, клиенте и клиенте в корзину. Но когда я пытаюсь добавить способ доставки в корзину , Я получаю эту ошибку


SoapFault – faultcode: «1062» faultstring: «Способ доставки недоступен»

Это код, который я пытаюсь использовать. Пожалуйста, помогите мне решить эту проблему.

SoapObject availableShippingMethods = new SoapObject(MAGENTO_NAMESPACE, "shoppingCartShippingList"); availableShippingMethods.addProperty("sessionId", sessionId); availableShippingMethods.addProperty("quoteId", quoteId); env.setOutputSoapObject(availableShippingMethods); androidHttpTransport.call("", env); Object resultForAvailableShippingMethods = env.getResponse(); Log.d("AvailableShippingMethods",resultForAvailableShippingMethods.toString()); 

Это даст нам этот результат


D / AvailableShippingMethods: shoppingCartShippingMethodEntityArray {item = shoppingCartShippingMethodEntity {code = flatrate_error; Носитель = Flatrate; Carrier_title = Flat Rate; цена = 0; }; }

Ниже приведен код, который устанавливает способ доставки в CartId

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

Solutions Collecting From Web of "SoapFault – faultcode: «1062» faultstring: «Способ доставки недоступен»"

Я знаю, что уже поздно отвечать … но это может помочь кому-то в будущем …

Проблема в документации magento soap v2 … Когда я прошел через ссылку wsdl, я заметил что-то вроде ниже …

 <message name="shoppingCartShippingMethodRequest"> <part name="sessionId" type="xsd:string"/> <part name="quoteId" type="xsd:int"/> <part name="method" type="xsd:string"/> <part name="storeId" type="xsd:string"/> </message> 

Как видите, существует метод свойств. На самом деле, мы должны добавить способ доставки … Так что вам нужно изменить код ur, как показано ниже …

 SoapObject shippingmethod = new SoapObject(MAGENTO_NAMESPACE,"shoppingCartShippingMethod"); shippingmethod.addProperty("sessionId", sessionId); shippingmethod.addProperty("quoteId", quoteId); shippingmethod.addProperty("method", "flatrate_error"); env.setOutputSoapObject(shippingmethod); androidHttpTransport.call("", env); Log.d("shippingMethod", shippingmethod.toString()); Object resultforShippingMethod = env.getResponse(); Log.d("ShippingMethod", resultforShippingMethod.toString()); 

Возможно, это связано с неправильным идентификатором страны. После ввода правильной информации я получаю два метода доставки ( freeshipping_freeshipping и flatrate_flatrate ).

Перед настройкой способа доставки вам необходимо сначала установить адреса клиентов, и в адресах клиентов вам нужно ввести идентификатор страны.