Получать 0 каждый раз, но почтальон показывает правильный вывод? - PullRequest
0 голосов
/ 11 мая 2018

Я занимаюсь разработкой приложения для Android, связанного с Woo-commerce. Я нажал API на Почтальоне, он добавил продукт и дал общий товар в корзине, но когда я нажал на тот же API с тем же параметром, я получил 0 товаров в корзине. Я добавляю товар через мобильное приложение. Я полностью сбит с толку. Я использую библиотеку залпа. Я подумал, что это происходит из-за кеша, поэтому я попытался очистить кеш, но получил тот же ответ в Json. Помоги мне. Нужно ли интегрировать Woo-commerce в Android. Если да, то как?

[Всего ответов почтальона в корзине ] [1]

JSON-ответ на Android Studio

Добавить в корзину: -
{"status": 1, "item_key": "c6a01432c8138d46ba39957a8250e027", "cart_content": {"products": [{"id": 3129, "title": "Тостер Surya Toast-O", "Кол-во": 1, "цена": "1195", "обычный_прием": "1495", "продажа_прайс": "1195", "изображение": "http://www.electrisia.com/wp-content/uploads/2015/11/Surya-10-Sizzle-10-L-SDL647886232-1-a142d16-200x150.jpg"}],"count":1,"line_count":1},"msg":"Product успешно добавлено в корзину"}

Всего товаров в корзине {"status": 1, "Всего товаров в корзине": 0}

Я знаю, что woo-commerce управляет своего рода кешем для каждого пользователя на сайте, как у почтальона, каждый раз, когда я нажимаю добавить в корзину API, он автоматически добавляет товар в мою предыдущую корзину, а в мобильном - нет. каждый раз, когда я нажимаю добавить в корзину, я получаю 0 от общего количества товаров в корзине.

код всего товара в корзине: -

 StringRequest request = new StringRequest(Request.Method.GET,TotalItemCart,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    Log.d("Response",response);
                    ProgressUtils.cancelProgressDialog();

                    try {
                        JSONObject object = new JSONObject(response);

                      /*  if(object.has("count"))
                        {
                            cartItemCount = object.getString("count");
                            tv.setText(cartItemCount);
                        }*/

                        if(object.has("status")) {
                            if (object.getInt("status") == 1) {


                                if(object.has("Total Items in a cart"))
                                {

                                    cartItemCount = object.getString("Total Items in a cart");
                                    tv.setText(cartItemCount);


                                }

                            }else {

                                Toast.makeText(ItemDescriptionActivity.this,"failed to add item",Toast.LENGTH_SHORT).show();

                            }
                        }


                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

                }
            },

            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    ProgressUtils.cancelProgressDialog();
                    Toast.makeText(ItemDescriptionActivity.this, "Cart not updated", Toast.LENGTH_SHORT).show();

                }
            });

    queue.add(request);

Добавить в корзину Почтальон ответа API

Добавить в корзину код

 ProgressUtils.showProgressDialog(ItemDescriptionActivity.this);
    StringRequest request = new StringRequest(Request.Method.POST,AppConstant.AddToCart,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    Log.d("Response",response);
                    ProgressUtils.cancelProgressDialog();

                    if(response != null)
                    {
                        try {
                            JSONObject responseOBJ = new JSONObject(response);

                            if(responseOBJ.has("status"))
                            {
                                if(responseOBJ.getInt("status")==1)
                                {
                                    Toast.makeText(ItemDescriptionActivity.this,"Item added successfully",Toast.LENGTH_SHORT).show();
                                    ItemCartCount();
                                }else {

                                    if(responseOBJ.has("msg"))
                                    {
                                        Toast.makeText(ItemDescriptionActivity.this,""+responseOBJ.getString("msg"),Toast.LENGTH_SHORT).show();
                                    }

                                }
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }

                    }

                }
            },

            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {

                    ProgressUtils.cancelProgressDialog();
                    Toast.makeText(ItemDescriptionActivity.this, "Someting went wrong...", Toast.LENGTH_SHORT).show();

                }
            }){

        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String,String> params = new HashMap<String, String>();
            params.put("product_id", String.valueOf(AppConstant.Product_ID));
            params.put("qty","1");
            params.put("secret_key",sec_key);

            return params;
        }

         //no semicolon or coma



        };

    queue.add(request);

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Во-первых, вы должны опубликовать код здесь, иначе здесь никто не сможет вам помочь. Также вам нужно проверить оба запроса, при передаче параметров из приложения должно быть что-то упущено, потому что если Postman показывает его правильно, то должен быть некоторой ошибкой кодирования.

0 голосов
/ 11 мая 2018

Вам необходимо проверить запрос и ответ.Есть несколько способов.1. Войдите в приложение, прежде чем сделать запрос и после ответа.вы можете увидеть здесь Volley JsonObjectRequest Post запрос не работает 2. используйте charles для проверки запроса, который вы фактически делаете, и ответа сервера.Нужно некоторое время, чтобы установить его, но стоит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...