Показать исходный текстСсылки сюдаНаверх Содержание Структура таблицы `addons_pay_api` Статусы Категории платежей Обработчик Дальнейшие планы Своя платежная система (API) Для чего это нужно: вы можете сами наладить связь между вашей платёжной системой/терминалом и биллингом; можете заполнять таблицу на списание средств с пользователя (доп. услуги); возвращение средств пользователю по акции (например, за покупку роутера). При запуске обработчика Pay API, через cron или консольную команду, проводятся все платежи, у которых: атрибут `status` = 0 атрибут `creation_time` меньше текущего времени сервера. Описание В базе данных создана таблица «addons_pay_api». Вы её заполняете, а cron проводит платежи на пополнение/списание средств с пользователя в соответствием с наполнением таблицы с частотой раз в 5 минут (зависит от настройки в cron). Также можно вызвать обработку таблицы в «ручном режиме» из админки: «Дополнительно» → «Консольные команды» - написать «do_api_terminal_payments». Мы настоятельно рекомендуем НЕ вызывать обработчик запланированных платежей отдельно от cron, так как это может привести к клонированию пополнений/списаний при одновременном запуске обработчика несколько раз. Добавлять записи в таблицу `addons_pay_api` необходимо со `status` = 0. Пример кода SQL запроса для добавления в таблицу: INSERT INTO `addons_pay_api` (`record_id`, `transaction_id`, `misc_id`, `category`, `user_ref`, `amount`, `creation_time`, `update_time`, `status`, `comment`) VALUES (NULL , 1333 , '' , 28 , 162 , 20.50 , NOW() , NOW() , 0 , 'спасибо, что Вы 2 года с нами'); Структура таблицы `addons_pay_api` Описание полей: Атрибут Тип данных Default Value Описание record_id BIGINT AI уникальный идентификатор платежа transaction_id BIGINT 0 ссылка на платеж во внешней системе misc_id VARCHAR(128) '' разное, например ссылка на терминал во внешней системе category SMALLINT 0 категория платежа во внешней системе, несет чисто информационный характер, означает «за что этот платеж» user_ref BIGINT UID пользователя, которому должен быть зачислен платеж amount DECIMAL(19,4) сумма платежа, положительная либо отрицательная creation_time TIMESTAMP 0000-00-00 00:00:00 время, после которого платёж будет активирован update_time TIMESTAMP 0000-00-00 00:00:00 время последнего обновления статуса платежа в этой таблице status SMALLINT 0 статус платежа comment VARCHAR(128) комментарий к платежу Если система присылает уникальный идентификатор транзакции в виде строки, а не числа, то можно использовать атрибут `misc_id` для его хранения. Статусы В поле `статус` отражается, в каком состоянии был пользователь, когда ему на счёт была зачислена/списана сумма. Атрибут `status` (значение статуса платежа можно посмотреть в справочнике 'pay API статусы'): Числовое значение Пояснение 0 Ожидает обработки 1 Зачислен активному пользователю 2 Зачислен замороженному пользователю 3 Зачислен отключенному пользователю 4 Зачислен удаленному пользователю 5 Не обработан (пользователь не найден) Категории платежей Категории платежей заполняются вручную в справочниках: 'Настройки' → 'Справочники' → 'pay API категории'. ID категории может принимать значение от -32768 до 32767. Рекомендуется использовать «отрицательные ID» для «не прибыльных» платежей, например: «возвращаем 20 грн. за покупку роутера каждый месяц». Обработчик Дальнейшие планы Добавить сумму категорий по следующим правилам: Прибыль - суммирование по категориям, которые > 0 Списано - суммирование по категориям, которые < 0 и сама сумма < 0 Начислено - суммирование по категориям, которые < 0 и сама сумма > 0 (т.е. это не прибыль, а подарок пользователю на счёт) paysystems/api.txt Последние изменения: 2019/07/29 14:54 — gudwin