Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

События, в ответ на которые должны приходить пуш-сообщения

Первоочередные:

  1. Найдена машина
  2. Заказ отменён
  3. Машина на месте

В дальнейшем:

  1. Те же события по перекидке
  2. Начат/окончен простой
  3. Не могу найти место
  4. Начат поиск машины на предварительный заказ (? потребуется обсуждение, если всё же делать это - слишком сложный кейс)
  5. Другие (не в текущем скоупе)

Информация в пуше

В рамках этой доработки требуется иметь два поля:

  1. event - наименование события в String (по типу "is_here", "idling_started", "cant_find" и т.д.)
  2. id - идентификатор заказа

Как первый этап нас устроит добавление поля event в существующие пуши https://docs.tn.in.ua/pages/viewpage.action?spaceKey=DEV&title=WebOrders+WebAPI+REST+Documentation#WebOrdersWebAPIRESTDocumentation-%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B9%D0%BE%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8%D0%B8%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%B0%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0

Если в дальнейшем будем развивать вариант с отправлением всех данных по заказу в пуше - имеет смысл передавать там такой же набор полей, как и в запросе данных по заказу, плюс поле event.

Отправка push

Адрес выбирается из настроек ТН "Настройки WebOrders" >> "Приложения для клиентов" по полю "Название" которое сервер получает из заголовка запроса X-WO-API-APP-ID.

Общий формат запроса

Request (запрос):

Параметры запроса

Обязательный параметр

Описание

<to>

Да

Иденификатор получателя уведомления. (Это токен, сервер получает его из тела запроса)

<data>

Да

Информация о статусе заказа или о бонусе. Структура зависит от типа сообщения.

Содержимое данного параметра при типе=0 полностью соответствует содержимому ответа при запросе статуса заказа. См. «Запрос состояния заказа».

<content_available>ДаЗначение true. Необходим для корректной работы пушей на ios устройствах.
<priority>ДаЗначение "high". Необходим для корректной работы пушей на ios устройствах.

Типизация сообщений для корректной обработки на клиенте

Типы определяются полем push_type в <data>:

  • 0 - пуш связанный с заказом.

    Значения


    • car_type_upgrade - информация о повышении класса машины
      • car_type_upgraded - признак повышения класса машины
      • car_type - системное название класса машины
    • ...
  • 1 - пуш связанный с бонусом за выполненный заказ.
  • 2 - пуш связанный с бонусом авторизации.
  • 3 - пуш связанный с уведомлением клиента о возможности изменения добавочной стоимости.
  • 5 - push при снятии/замене машины для заказа с подтвержденным водителем выполнением

Пример формата с типом 0

Content-Type:application/json

Authorization:AIzaSyZ-1u...0GBYzPu7Udno5aA

{

"data":

{

    "dispatching_order_uid":"44ebd09e5f224651bf3c8e2dd12ed890"

    ,"order_cost":"72"

    ,"currency":" грн."

    ,"order_car_info":"АА1172АА, синий, Ford C-Max"

    ,"driver_phone":"050-123-45-67"

    ,"required_time":"2013-08-14T17:01:57.303"

    ,"close_reason":-1

    ,"cancel_reason_comment":null

    ,"order_is_archive":false

    ,"execution_status":"SearchesForCar"

    ,"push_type":0

    ,"rating":0,

    ,"rating_comment":"",

    "car_type_upgrade":{

"car_type_upgraded":true,

"car_type":"WAGON"

}

    ,"drivercar_position":{

        "lat":50.512383

        ,"lng":30.536734

        ,"time_positioned_utc":"2015-06-02T11:12:23.301"

        ,"altitude":null

        ,"accuracy":null

        ,"bearing":0

        ,"speed":60

        ,"status":"gpsOk"

    }

    ,"route_address_from":{

        "name":"ОЗЕРНАЯ УЛ. (ОБОЛОНЬ)"

        ,"number":"1"}

    ,"route_address_to":{

        "name":"ЯНГЕЛЯ АКАДЕМИКА УЛ."

        ,"number":"1"}

},

"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",

"content_available":true,

"priority" : "high"

}


Пример формата с типом 1 или 2 (тут необходимо так же указать значение изменения бонуса):

Content-Type:application/json

Authorization:AIzaSyZ-1u...0GBYzPu7Udno5aA


{  
   "to":"App_Token",
   "data":{  
      "bonus":7.0,
      "push_type":2
   },
   "content_available":true,
   "priority":"high"
}

Пример формата с типом 3:

Content-Type:application/json

Authorization:AIzaSyZ-1u...0GBYzPu7Udno5aA

{  
   "to":"App_Token",
   "data":{  
      "push_type":3
   },
   "content_available":true,
   "priority":"high"
}

Пример формата с типом 5:

Content-Type:application/json

Authorization:AIzaSyZ-1u...0GBYzPu7Udno5aA

{  
   "to":"App_Token",
   "data":{  
      "push_type":5
   },
   "content_available":true,
   "priority":"high"
}