Когда я увидел вот эту статью я всплакнул. Такое точное попадание в сердечко, что позавидовал бы сам Купидон. Но в этой статье нет информации, что все таки делать.

Проблема нового сайта Сбербанка, что он не индексируется поисковиками. Совсем. Абсолютно. Если вбить их новый урл в поисковик, то мы не увидим ничего. Поиска по сайту тоже нет. Поиск в гугле через site ничего нам не даст. Ну и земля им Винни-пухом.

Если у вы используете REST для получения данных и у вас не получается переделать код под новые требования, тогда вам под кат

1. Зайдите в админку сбербанка и проверьте что ваша онлайн касса умеет работать с 1.05. Там в версии ОФД системы должно стоять 1.05.

2. Дополните ваш запрос следующими ключами

"itemAttributes": {
  "attributes" : [
    {
      "name": "paymentMethod",
      "value": "1"
    },
    {
      "name": "paymentObject",
      "value": "4"
    }
  ]
}

itemAttributes должен быть у каждой позиции items.

3. И полный запрос

{
  "orderCreationDate": 1544553466000,
  "customerDetails": {
    "email": "test@222.ru",
    "phone": "42",
    "contact": "Max"
  },
  "cartItems": {
    "items": [
      {
        "positionId": 1,
        "name": "FFD 1.05",
        "quantity": {
          "value": 1,
          "measure": "ed"
        },
        "itemCode": "item_1",
        "tax": {
          "taxType": 0,
          "taxSum": 0
        },
        "itemPrice": 100000,
        "itemAttributes": {
          "attributes" : [
            {
              "name": "paymentMethod",
              "value": "1"
            },
            {
              "name": "paymentObject",
              "value": "4"
            }
          ]
        }
      }
    ]
  }
}

Это необходимый минимум, чтобы обновить свой код под ФФД 1.05. Если вдруг вы очень удивились формату itemAttributes, то вы не одиноки. Как перевести то что указано здесь в то что написано выше я не очень представляю. Но буду рад, если вы в комментариях расскажите, где у них на сайте можно найти пример форматирования itemAttributes.

Комментарии (10)


  1. Popadanec
    23.12.2018 15:42

    Я подумывал перейти на онлайн кассы и электронную отчетность от сбербанка, но увидел их дикие цены и решил кассы покупать(покупка окупалась за год, если купить до 01.07.2018) и оставаться на старой системе электронной отчетности.
    P.S. А немного зная, что скрывается под красивой оболочкой сбербанка и сейчас не жалею, особенно глядя на такие публикации.


  1. questor
    23.12.2018 15:51

    А почему не индексируется? Запретили индексацию или ушли в джваскриптовые фронтенд-технологии, которые наверное всё ещё не научились индексироваться поисковиками?


    1. tbl
      24.12.2018 11:18

      Видимо, где-то на том же домене есть API, которое по неаутентифицированным GET-запросам может отдать приватную информацию, поэтому безопасники настояли на том, чтобы закрыть весь домен от индексации.

      User-agent: *
      Disallow: /

      securepayments.sberbank.ru/robots.txt

      На самом деле, это достаточно кривое решение: держать документацию и API на одном домене.


      1. tbl
        24.12.2018 11:38
        +1

        Покопался в доках
        Адреса для rest и wsdl в 3dsec.sberbank.ru/payment ???
        Да ладно, домен, судя по названию, выделенный для ACS, используется еще и для других целей? Как же они аудит по PCI DSS прошли?


        1. miksser Автор
          24.12.2018 11:51

          Год назад еще и коллбеки были без секретного ключа.


          1. tbl
            24.12.2018 11:58

            Еще и своих клиентов подставляли )


    1. cyrillpetroff
      24.12.2018 11:52

      Испугались утечки скорее всего, применив радикальные меры, запрещая к индексации все подряд.


  1. d-stream
    24.12.2018 01:24

    На само деле — это те самые ФФД атрибуты:
    каждая позиция в чеке квалифицируется как (товар, услуга и прочее из paymentObject), каждая оплата — так же квалифицируется признаками типа itemAttributes (предоплата, аванс, зачет аванса и т.п.)

    Вот названия — несколько непривычны глазу… но это просто потому что я расплевываюсь с чуть другим интерфейсом.


  1. PowerMetall
    24.12.2018 08:36

    Позволю себе немного дополнить:

    paymentMethod — это метод оплаты из ФФД 1.05. Звучит немного непонятно, но глядя на допустимые значения — всё становится ясно:
    Возможные значения:
    1 — Предоплата 100 %
    2 — Предоплата
    3 — Аванс
    4 — Полный расчет
    5 — Частичный расчет и кредит
    6 — Передача в кредит
    7 — Оплата кредита

    Не следует путать с paymentType — это другое поле!

    paymentObject — соответственно, тип позиции.
    Возможные значения:
    1 — Товар
    2 — Подакцизный товар
    3 — Работа
    4 — Услуга
    5 — Ставка азартной игры
    6 — Выигрыш азартной игры
    7 — Лотерейный билет
    8 — Выигрыш лотереи
    9 — Предоставление РИД (результатов интеллектульной деятельности)
    10 — Платеж
    11 — Агентское вознаграждение (в случае, когда вы обычный/банковский платежный агент/субагент, поверенный и т. д.)
    12 — Составной предмет расчета
    13 — Иной предмет расчета

    То есть вполне возможны вариации, когда в одном чеке будут несколько позиций, одна из которых является, к примеру, товаром, и по нему был осуществлен полный расчет в момент передачи товара, вторая позиция — услуга, с предоплатой 100% (на момент регистрации оплаты услуга не была оказана), третья — вовсе услуга агента по приему платежа в пользу стороннего поставщика услуги, и т. д.

    P. S. Точные значения, возможно, будут отличаться, в зависимости от модели ККТ «под капотом» сервиса

    P. P. S. В случае если вы агент/субагент — всё становится ещё веселее, и появляется куча доп. реквизитов


  1. dmrt
    24.12.2018 12:04

    Ничего не понял, но вспомнил, что недавно делал переход на версию 1.05 в АТОЛ.