wiki:paypoint-local

Настройка модуля локальных платежей

Схема работы

Модуль локальных платежей позволяет программному обеспечению PayPoint работать автономно, без сети интернет и без привязки к сервису PayCloud. Получатели платежей (за товары/услуги) настраиваются локально на терминале.

Модуль позволяет:

  • Принимать авансовые платежи без сдачи (автономно).
  • Принимать платежи с фиксированной ценой со сдачей (автономно). Данная опция доступна, если присутствует рабочее устройство выдачи сдачи (диспенсер купюр, хоппер и др.).
  • Принимать платежи с фиксированной ценой со сдачей на мобильный телефон (требуется подключение к интернету и к серверу PayCloud). Данная опция доступна, если настроено подключение к PayCloud и активирована возможность принимать платежи за сотовую связь.
  • Принимать платежи с фиксированной ценой по банковским картам (требуется подключение к интернету и к серверу Uniteller). Данная опция доступна, если настроен сервис Uniteller.

Настройка групп получателей платежа

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

Чтобы добавить группу нажмите Добавить в разделе Список групп. Укажите наименование группы, иконку и вышестоящую группу.

Настройка

Чтобы отредактировать локальный список товаров и услуг перейдите в режим администрирования и выберите пункт "Лок. платежи".

Установите галочку около пункта Использовать модуль локальных платежей - это активирует модули и иконку на главной странице интерфейса. В пункте Заголовок установите название группы локальных получателей, например "Услуги автомойки" или "Налоговые платежи". Этот текст будет отображён на кнопке главной страницы.

В списке операторов добавьте новую услугу кнопкой Добавить. Укажите наименование услуги, группу из списка и выберите иконку-изображение (желательно формата png с прозрачностью).

Выберите метод расчёта:

  • При авансовом методе клиент вносит любую сумму. При данном методе сдача не выдаётся, зачисляются все внесённые средства. Для данного способа укажите также минимальную и максимальную сумму платежа, а также комиссию в процентах и минимальную комиссию в рублях, если это необходимо.
  • При методе с фиксированной суммой платежа укажите стоимость товара/услуги в поле Стоимость. Для того, чтобы клиент мог оплатить сразу несколько услуг этого типа за один сеанс (имеется ввиду, например, почасовая оплата) - необходимо поставить галочку в пункте Запрашивать количество, после чего указать минимально и максимально допустимое количество оплат.
  • Метод "Сумма от пользователя" предполагает ввод суммы пользователем в установленных пределах (минимальная/максимальная сумма).

Расчёт выполняется от итоговой суммы, выдаётся сдача в зависимости от способа, выбранного клиентом.

Подтвердите ввод нажатием OK. Добавьте нужное количество получателей платежей и нажмите Сохранить настройки.

При необходимости информировать клиента об условиях продажи установите галочку Правила/Информация в настройках локального оператора, отредактируйте правила в диалоговом окне, нажав Редактировать.

Настройка реквизитов

Реквизит (поле) - параметр, запрашиваемый у пользователя для ввода. Примеры реквизитов: номер телефона, фамилия, выбор варианта тарифа и т.д.

Реквизиты могут быть одним из четырёх типов:

  • Цифровой - для ввода используется цифровая клавиатура (только цифры).
  • Символьный - для ввода используется полноценная клавиатура (цифры, символы, два языка).
  • Булевый (Да/Нет)
  • Списковый - выбор варианта из списка.

Реквизиты оператора представлены окне правки локального оператора. Используйте кнопки Добавить/Редактировать/Удалить для правки.

При добавлении нового реквизита укажите Наименование реквизита (оно будет напечатано на чеке), идентификатор (латинскими буквами), описание-подсказку, выберите тип поля.

Атрибут формат определяет маску ввода. Маска ввода может содержать любые символы и включает в себя служебные символы '_' и '*', которые определяют обязательную и необязательную позицию ввода соответственно. Пример:

Формат ввода фамилии (минимум 2, максимум 15 символов):   __*************
Формат ввода телефона (строго 10 символов):   +7 (___) ___-__-__
Лицевой счёт (10 символов) с контрольной суммой (2 символа):    __________-__

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

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

Остатки

Блок управления Остатки позволяет ограничивать количество проданных товаров и услуг. Остатки редактируются в Административном режиме, в разделе Локальные платежи.

Чтобы добавить товар или услугу в Остатки нажмите Добавить, выберите нужного оператора и укажите количество единиц резерва (единиц продажи). Повторите операцию для того, чтобы увеличить количество резерва.

Кнопки Обнулить и Обнулить всё можно использовать для сброса резерва.

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

Настройка Сервера приема платежей

Оповещения о платеже могут быть отправлены по протоколу http/https на указанный в настройках URL (URL отправки платежа).

Настройка оповещения производится в режиме конфигурации, в разделе Локальные платежи->Сервер приема платежей.

Настраиваются следующие параметры:

  • использовать сервер приема - отправка платежей будет выполнятся только если данная опция включена
  • URL проверки платежа - URL (http или https), на который выполняется отправка данных о платеже для проверки реквизитов
  • URL отправки платежа - URL (http или https), на который выполняется отправка данных о платеже для регистрации на сервере
  • использовать HTTP-авторизацию - при использовании данной опции к каждому запросу будет добавляться логин и пароль по схеме HTTP plain auth
  • использовать md5-подпись - при использовании данной опции в каждый запрос будет добавлен GET-параметр pw, который формируется как md5-хэш строки вида <xml-запрос>:<парольная фраза>, где <xml-запрос> - это POST-запрос (см. ниже), а <парольная фраза> указывается в настройках.

Если указан URL проверки платежа, то терминал осуществляет отправку реквизитов на указанный в настройках url в виде запроса методом POST:

<root>
 <check operator_id="3" terminal_id="123456789">
  <input dbname="name" value="петя"/>
  <input dbname="tariff" value="2"/>
 </check>
</root>

Описание:

  • <check> - блок запроса на проверку.
  • operator_id - id локального оператора.
  • terminal_id - ID терминала (указывается в конфигурации)
  • <input> - перечисление значений реквизитов, где id - идентификатор реквизита, value - значение

В случае успеха сервер отправляет ответ в виде xml-документа следующего вида:

<?xml version='1.0' encoding = 'utf-8'?>
<root result='true' confirm='Платеж будет зачислен в течении суток. Продолжить?'>
  <extra_input>
    <input name='Поле1' dbname='field1' value='Значение1'/>
    <input name='Поле2' dbname='field2' value='Значение2'/>
  </extra_input>
</root>

Описание параметров успешного ответа:

  • /root/@result - результат операции (в случае успешного ответа true)
  • /root/@confirm - [опциональный атрибут] текст, демонстрируемый пользователю для подтверждения оплаты.
  • /root/extra_input/input - [опционально] дополнительные реквизиты, прикрепляемые к платежу.
  • /root/extra_input/input/@name - имя реквизита
  • /root/extra_input/input/@dbname - идентификатор реквизита (латинскими буквами и цифрами)
  • /root/extra_input/input/@value - значение реквизита

Дополнительные реквизиты (если таковые указаны в ответе) прикрепляются к платежу аналогично реквизитам, заполняемых пользователем: выводятся на экран для подтверждения, печатаются на чеке, отправляются в оповещении о платеже и в систему ParkCloud.

В случае отказа сервер формирует следующее сообщение:

<?xml version='1.0' encoding = 'utf-8'?>
<root result='false' alert='В платеже отказано, лицевой счет не найден!'/>

Описание параметров отказа ответа:

  • /root/@result - результат операции (в случае успешного ответа false)
  • /root/@alert - [опционально] описание отказа

Оповещения отправляются в виде xml-документа методом POST, без разбивки на отдельные параметры, целиком. Пример отправки:

<root>
 <payment operator_id="3" com_amount="0" pay_amount="5000" pay_time="1371387135" terminal_id="123456789">
  <input dbname="name" value="петя"/>
  <input dbname="tariff" value="2"/>
 </payment>
 <payment operator_id="4" com_amount="1000" pay_amount="5000" pay_time="1371387241" terminal_id="123456789">
  <input dbname="name" value="Вася"/>
  <input dbname="tariff" value="2"/>
 </payment>
</root>

Описание:

  • <payment> - блок одного платежа. Блоки <payment> могут повторяться, если платежей несколько.
  • operator_id - id локального оператора.
  • com_amount - размер комиссии (в копейках)
  • pay_amount - сумма к оплате (в копейках)
  • pay_time - время платежа (unix time)
  • terminal_id - ID терминала (указывается в конфигурации)
  • <input> - перечисление значений реквизитов, где id - идентификатор реквизита, value - значение

Крайне важно исключить появление дубликатов платежей, для этого необходимо сохранять платежи в БД и для каждого нового платежа проверять его наличие по pay_time. pay_time будет уникальным для каждого платежа.

Last modified 9 years ago Last modified on Jul 17, 2015, 6:01:16 PM