При получении данных заказа из информационной системы предприятия через веб-сервис или от собственного приложения предприятия в приложение Assist mPOS передаются необходимые входные данные.

Входные данные для приложения Assist mPOS

Параметр

Обяза-тельный

Описание

Комментарий

Пример в формате JSON

ordernum

Нет

Уникальный номер заказа из внешней системы

На входе используется валидация. Запрещены и фильтруются символы <>"='/();#

"ordernum":"12354_5678"

amount

Да

Сумма заказа

Если значение отличается от значения произведения переданных в строке items значений price и quantity

"amount":"1234.56"

amount _ prepaid

Нет

Сумма ранее полученной предоплаты


"amount_prepaid":"1000.00"

currency

Нет

Валюта заказа, ISO код

В настоящий момент возможна оплата заказов только в рублях.

"currency":"RUB"

server НетURL для платежейИспользуется только в случае вызова приложения Assist mPOS из собственного приложения предприятия."server":"<SERVER-NAME> "
login НетЛогин пользователя assist, который проводит оплату. Могут быть использованы данные курьера.Используется только в случае вызова приложения Assist mPOS из собственного приложения предприятия."login":"<LOGIN>"
password НетПароль пользователя assist, который проводит оплату.  Могут быть использованы данные курьера. Используется только в случае вызова приложения Assist mPOS из собственного приложения предприятия."password":"<PASSWORD>"

merchant_id

Нет/Да

Идентификатор предприятия в АПК Ассист. Параметр обязателен, если его значение отсутствует в настройках приложения.


"merchant_id":"223344"

merchant_name

Нет

Для печати в чеке. Пример: ООО "Яркий фотомаркет"


"merchant_name":"ООО Мерчант"

comment

Нет

Комментарий к заказу


"comment":"скидка 8 марта"

clientname

Нет

Имя покупателя


"clientname":"Иван"

clientemail

Нет

Email адрес покупателя


"clientmail":"client@mail.ru"

clientphone

Нет

Номер мобильного телефона покупателя


"clientphone":"12345678"

payment_address

Нет

Место расчета для печати в чеке


"payment_address":"ул. Новая, д.23"

cashier

Нет

Фамилия кассира для печати в чеке


"cashier":"Иванов"

taxation_system

Нет/Да

Идентификатор системы налогообложения

Код в соответствии со справочником типов системы налогообложения

"taxation_system":"0"

сustomer_doc_idНетНомер паспорта покупателяДля чека"сustomer_doc_id":"5678№123456"
customer_innНетИНН покупателяДля чека"customer_inn":"888888888888"
payment_agent_modeНет1Признак агентаДля чека. Число от 0 до 6. Передается в соответствии со справочником."payment_agent_mode":"0"
payment_receiver_operator_phoneНет1Телефон оператора по приёму платежейДля чека"payment_receiver_operator_phone":"891133333333"
payment_agent_phoneНет1Телефон платежного агентаДля чека"payment_agent_phone":"881244444444"
supplier_phoneНет1Телефон поставщикаДля чека. Номер контактного телефона поставщика"supplier_phone":"891188888888"
document_requisiteНетДополнительный реквизит чекаЗначение дополнительного реквизита с учетом особенностей сферы деятельности, в которой осуществляются расчеты"document_requisite":"HXT109352724"

items

Нет

Товарные позиции в формате json :

{"items":[

{

"id": "Позиция в чеке",

"product" : "Код номенклатуры",

"type" : " Предмет расчета"

"name" : "Наименование",

"display_name" : "Опциональное название позиции, только для отображения в приложении",

"price" : "Цена за единицу номенклатуры, без учета скидки",

"quantity" : "Количество",

"tax" : "Идентификатор ставки налога",

"amount" : "Стоимость позиции итого"

"discount_amount" : "Скидка по позиции итого"

"payment_method" : "Способ расчета",

"eancode": "EAN-8/UPC-E, EAN-13/UPC-A, ITF-14 код маркировки товара",

"gs1code": "GS1 DataMatrix/"Честный Знак" код маркировки товара",

"furcode": "Код маркировки мехового изделия в формате СС-DDDDDD-СССССССССС (C-символ, D-цифра)",

"uncode": "Неопознанный код маркировки товара",

"country_of_origin" : "Код страны происхождения товара",

"number_of_customs_declaration" : "Номер таможенной декларации",

"supplier_inn" : "ИНН поставщика",

"supplier_name" : "Наименование поставщика",

"supplier_phone" : "Телефон поставщика",

"excise":"Акциз",

"payment_receiver_operator_phone":"Телефон оператора по приёму платежей",

"payment_agent_phone":"Телефон платёжного агента",

"payment_agent_operation":"Операция платёжного агента",

"line_attribute":"Дополнительный реквизит предмета расчета",

"agent_mode":" Признак агента по предмету расчета"}

...

] }

Валидация данных:

  • обязательные поля для позиции:
  • name;
  • price;
  • tax;
  • quatity;
    • в поле price учитываются только два знака после запятой, остальные знаки обрезаются;
    • вырезаются невалидные для xml символы: <, >,&.

Только один из кодов маркировки товара (eancode, gs1code,  furcode или uncode)   может быть передан в позиции чека, передача нескольких кодов недопустима.


Внимание!  Для формата фискальных данных версии 1.2 не разрешается передавать неопознанный код маркировки товара  uncode, следует использовать только один из распознаваемых кодов маркировки (eancode, gs1code  или  furcode).




"items":[

{"id":"1",

"product":"16537615",

"type":1,

"name":"Чехол FUJIFILM LC-X100F для X100F, коричневый",

"display_name": "Компактный фотик"

"price":"6500.00",

"quantity":1,

"tax":"vat0",

"amount":"6500.00",

"discount_amount":"490.00",

"payment_method":"4",

"gs1code ":"010465006531290521p9YjRk;Ihdm6T2WItlgr91417592zexhyEZtzgbDJ2fDfjyI2JgmgjwriiZsKaE+efoxlg==",

"country_of_origin":"643",

"number_of_customs_declaration":"1111-2222",

"supplier_inn":"911111111111",

"supplier_name":"Поставщик фото",
"supplier_phone":"1234567",

"line_attribute":"дополнительная информация",

"agent_mode":0 }

]

allow_edit_item_quantity

Нет

Разрешено ли пользователю изменять количество позиций заказа

Допустимые значения false или true (по умолчанию false)

"allow_edit_item_quantity":true

allow_remove_item

Нет

Разрешено ли пользователю удалять позиции заказа

Допустимые значения false или true (по умолчанию false)

"allow_remove_item":true


1Параметр может заполняться только для ФФД 1.05 и 1.1.

Получение данных из информационной системы предприятия через веб-сервис

Для получения приложением Assist mPOS данных заказа через веб-сервис сначала необходимо настроить соответствующие параметры (URL информационной системы предприятия, наименование учетной записи пользователя и пароль для доступа к веб-сервису информационной системы предприятия) в Личном кабинете АПК Ассист. Настройка параметров описана в  инструкции по работе с Личным кабинетом».

После ввода номера заказа пользователем приложение осуществляет запрос методом GET на указанный в настройках сервер предприятия с параметром ID заказа.

Примерный вид запроса:

GET https://<URL сервера информационной системы предприятия>?orderid=XXXX,

где XXXX – уникальный идентификатор заказа в системе предприятия (номер заказа).

В ответ информационная система предприятия должна передать данные заказа в формате JSON в соответствии с таблицей входных данных для приложения Assist mPOS, приведенной выше.

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

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

Примерный вид запроса:

GET https://<URL сервера информационной системы предприятия>?id=XXXX,

где XXXX – уникальный идентификатор пользователя в системе предприятия (номер заказа).

Получение данных от собственного приложения предприятия

Собственное приложение предприятия, установленное на том же мобильном устройстве, инициирует оплату заказа, передавая приложению Assist mPOS данные заказа.

Данные заказа в формате JSON передаются через Intent как строка (extra string):

Intent.putExtra(Intent.EXTRA_TEXT, json)

Тип данных: Intent.setType("application/json")

Intent action: "ru.assisttech.assistmpos.PAY"

Данные заказа передаются в соответствии с таблицей входных данных для приложения Assist mPOS, приведенной выше.



Результат оплаты возвращается собственному приложению предприятия приложением Assist mPOS также в формате JSON через Intent как строка (extra string):

Intent.putExtra(Intent.EXTRA_TEXT, json)

дополнительно устанавливается тип данных  Intent.setType("application/json").

Выходные параметры (результат оплаты)

Параметр ( JSON имя поля)

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

Описание

ordernum

Да

Номер заказа

orderstate

Да

Статус заказа

billnumber

Нет

Внутренний номер АПК Ассист

amount

Да

Сумма заказа

currency

Да

Валюта заказа, ISO код

clientmail

Нет

Адрес электронной почты покупателя

clientphone

Нет

Номер телефона покупателя

payment_type

Да

Способ оплаты (CASH, CARD, FAST_TRANSFER)

operationdate

Нет

Дата и время операции (GMT)

cardtype

Нет

Тип платежной системы (VISA/MC)

cardmask

Нет

Маскированный PAN

cardholder

Нет

Держатель карты

cardexpire

Нет

Срок действия карты

fiscal_printer_serial*

Нет

Серийный номер ККТ

fiscal_printer_shift*

Нет

Номер смены в ККТ

fiscal_storage_number*

Нет

Номер фискального накопителя

fiscal_doc_number*

Нет

Сквозной номер фискального документа

fiscal_doc_mark*

Нет

Фискальный признак

fiscal_storage_number_per_shift*

Нет

Номер фискального документа в смене

fiscal_doc_datetime*

Нет

Дата формирования фискального документа

*Поле передается только в случае фискализации на стороне АПК Ассист

В случае завершения операции оплаты (успешно или неуспешно) возвращается код результата Activity.RESULT_OK.

Если операция оплаты была прервана, то возвращается код результата Activity.RESULT_CANCELED.

При неуспешном завершении операции оплаты передаются следующие выходные параметры:

Параметр ( JSON имя поля)

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

Описание

error_code

Нет

Код ошибки

error_message

Нет

Сообщение об ошибке

Получение статуса заказа собственным приложением предприятия

Собственное приложение предприятия, установленное на том же мобильном устройстве, может также запросить статус заказа в АПК Ассист, передавая запрос приложению Assist mPOS. Запрос статуса заказа в формате JSON передается через Intent как строка (extra string):

Intent.putExtra(Intent.EXTRA_TEXT, json)

Тип данных: Intent.setType("application/json")

Intent action: "ru.assisttech.assistmpos.GET_PAYMENT_INFO"

Входные данные для запроса статуса заказа

Параметр

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

Описание

Комментарий

Пример в формате JSON

ordernum

Да

Уникальный номер заказа из внешней системы

На входе используется валидация. Запрещены и фильтруются символы <>"='/();#

"ordernum":"12354_5678"

login

Да

Наименование учетной записи курьера в АПК Ассист.


"login":"qwert"

password

Да

Пароль курьера в АПК Ассист.


"password":"qweerty"

merchant_id

Да

Идентификатор предприятия в АПК Ассист.


"merchant_id":"223344"

Результат оплаты возвращается собственному приложению предприятия приложением Assist mPOS также в формате JSON аналогично ответу на передачу данных заказа.

Наверх