Link Поиск Меню Развернуть Документ

Требования к разработке расширений «Инвойсбокс» для систем управления сайтами

Используемый протокол обмена данными (API)

Расширение (далее, модуль «Инвойсбокс») системы управления сайтом (далее, CMS) Интернет-магазина (далее, магазина) для передачи информации о заказе и составе корзины должен опираться на описание протокола, расположенное по адресу: Инвойсбокс API v3.

В случае доработки существующего модуля, работающего с Инвойсбокс API v2, в модуле должна быть предусмотрена настройка, позволяющая переключаться между версиями API.

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

Наиболее важную роль проверка данных играет в реализации API v2, при формировании данных платёжной формы для дальнейшей переадресации пользователя на платёжную страницу. В случае наличия ошибок в расчёте, отсутствия необходимых сведений и других ошибок, модуль должен отобразить соответствующее сообщение пользователю, форма не должна отправляться в платёжный шлюз.

В модуле должны быть предусмотрены следующие функции:

  1. Оформление заказа/переход на платёжную страницу системы «Инвойсбокс»;
  2. Callback-скрипт для получения информации об оплате заказа;
  3. Функции оформления возврата по заказу.

Множество способов оплаты

В тех CMS, где это технически возможно, модуль должен поддерживать оформление двух способов оплаты, а именно - оплата для физических лица (банковские карты, интернет банки и т.д.), а также оплата для юридических лиц (оплата по счёту для организаций и ИП). В настройках модуля должна быть предусмотрена возможность выбора используемых способов оплаты.

При выборе способа оплаты для организаций и ИП, по API должны передаваться данные организации - ИНН, наименование, юридический адрес (при наличие данных в заказе).

Т.е. в результате установки модуля, в CMS должно появится два способа оплаты. Там где это невозможно, выбор способа оплаты будет осуществляться на странице платёжного шлюза системы «Инвойсбокс».

Идентификация модуля

Важно обратить внимание на формирование идентификатора приложения и модуля при работе с API.

В API v3 идентификатор приложения передаётся в HTTP-заголовке User-Agent.

В API v2, в параметрах платёжной формы, в обязательном порядке должно присутствовать поле с идентификатором приложения - itransfer_cms_name.

Параметры заказа (счёта)

Модуль обязательно должен передавать тип позиции в заказе - товар или услуга, для API V3 - более детальное значение см. справочник;

Callback для получения информации об оплате

Смена статуса заказа в CMS магазина должна осуществляться по факту получения информации об оплате в формате, описанном по адресу:

Для API v3: Уведомление по умолчанию; Для API v2: HTTP-уведомления о переводах.

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

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

Тестовый запрос используется для проверки корректность установки модуля и не должен приводить к смене статуса какого-либо из заказов.

Для API v3, описание тестового запроса расположено на странице уведомление по умолчанию (раздел Система мониторинга и автоматическое тестирование интеграции); Для API v2, в тестовом запросе передаётся номер счёта (ucode) равный: 00000-00000-00000-00000.

Настройки модуля

Обязательным набором настроек модуля, которые пользователь может менять, являются:

  • Идентификатор магазина (для API v2, v3);
  • Региональный код магазина (для API v2);
  • API ключ магазина (для API v2, v3);
  • Включить/выключить тестовый режим (для API v2);
  • Описание способа оплаты (текст, который отображается в описании способа оплаты в процессе выбора способа оплаты при оформлении заказа в магазине, для API v2, v3).

Опционально, в настройках модуля может быть предусмотрен статус, на который следует изменить статус заказа, при получении информации об оплате, а также адрес эл. почты администратора магазина, на который следует отправлять отчёты, в случае возникновения ошибок в работе модуля.

При наличие технической возможности CMS, модуль должен поддерживать несколько настроек таким образом, чтобы для каждой группы товара или отдельного товара можно было бы задать параметр - какие настройки использовать для оплаты. Это требования необходимо там, где разные товары и услуги могут быть оплачены от разных организаций.

Модуль должен поддерживать 2 языка – русский и английский.

Прочие сведения

Логотип системы для использования в модуле: Логотипы системы «Инвойсбокс»

Комплект модуля

В состав модуля должны входить следующие элементы:

  • Файлы модуля (архив ZIP), включая файл version.txt, в котором должна быть отражена версия модуля;
  • Информация о модуле – версия(ии) CMS для которой модуль предназначен, версия(ии) CMS, на которой модуль был протестирован;
  • Логотип CMS (SVG);
  • Пошаговая инструкция по установке модуля включая шаги, необходимые для установки модуля, изображения, сопровождающие описательную часть;
  • Пошаговая инструкция по настройке модуля, необходимые для настройки модуля, изображения, сопровождающие описательную часть;
  • URL, которую следует указать в личном кабинете системы «Инвойсбокс» для передачи информации об оплате.

Исходные коды модуля должны быть загружены на github:

Информация о модуле и инструкции должны быть размещены на ресурсах:

phpSDK

Для упрощенной разработки и поддержания модулей в актуальном состоянии, требуется реализация phpSDK для API v3 как отдельного проекта. В phpSDK должны быть реализованы базовые методы, описанные в документации.

Общие требования к обновлению старых версий модулей

  1. Требуется обновить текущие модули в соответствии с актуальными версиями CMS;
  2. Требуется обновить реализацию API v2 таким образом, чтобы:
    • Корректно передавался состав корзины, включая такие поля как артикул товара, тип товара (товар или услуга), ставка НДС, единица измерения, код единицы измерения;
    • Корректно передавался тип плательщика - физическое лицо или организация. Если передается организация - должны передаваться дополнительные поля, такие как ИНН, КПП и адрес регистрации
    • Передавался параметр с наименованием и версией CMS и наименованием и версии модуля Invoicebox, пример, itransfer_cms_name = Bitrix/20.1.2 (Invoicebox 2.0.1). Наименование должно передаваться как при формировании счёта, так и в заголовке User-Agent при ответе на запрос с оплатой
    • Обрабатывался тестовый номер заказа (00000-00000-00000-00000 или ffffffff-ffff-ffff-ffff-ffffffffffff для API v3)
  3. Требуется обновить логотип и наименование платёжной системы в модуле - Инвойсбокс, Invoicebox (б, b - маленькие);
  4. Требуется обновить инструкции по установке и настройке модулей с учётом нового личного кабинета в системе Инвойсбокс (вместо login.invoicebox.ru - business.invoicebox.ru), включая скриншоты;
  5. Требуется реализовать поддержку протокола v3 и настройки модуля, которая позволяет выбирать версию используемого протокола;
  6. В случае, если в модуле используется IP фильтр для адресов 77.244.212.7, 77.244.212.8, 77.244.212.9 - такой фильтр следует удалить из кода;
  7. Требуется реализовать функции возврата платежа, если такие функции поддерживает CMS;
  8. Выделить функции работы с API v3 в phpSDK для переиспользования в разных модулях;

Проект на github