meraproject/module/integration/unisender/model.php
keboss-m 5c21d25d45 Initial commit: Merakomis portal, Docker stack and user-reader API.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 11:04:05 +03:00

218 lines
17 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?
namespace integration;
class UnisenderAPI{
const UNI_COMMAND = 'command';
// КОМАНДЫ
// ПАРТНЕРСКИЕ САЙТЫ
const UNI_COMMAND_CHANGE_TARIF = 'changeTariff'; // Метод для смены тарифного плана у пользователя.
const UNI_COMMAND_CHECK_USER_EXIST = 'checkUserExists'; // Проверяет, зарегистрирован ли пользователь с заданым login или email. Предназначен для вызова только реселлерами.
const UNI_COMMAND_GET_AVAILABLE_TARIFFS = 'getAvailableTariffs'; // Метод для получения списка тарифов. Данный метод возможен только для аккаунтов, у которых имеется статус реселлера.
const UNI_COMMAND_GET_CHECKED_EMAIL = 'getCheckedEmail'; //Метод возвращает объект с подтвержденными и неподтвержденными адресами отправителя. Неподтвержденный адрес отправителя — адрес, на который было выслано письмо со ссылкой для подтверждения обратного адреса, но по ссылке подтверждения из письма не переходили.
const UNI_COMMAND_GET_USER_INFO = 'getUserInfo'; // Метод для получения информации о пользователе и состоянии его счёта
const UNI_COMMAND_GET_USERS = 'getUsers'; // Метод для получения информации о пользователях прикреплённых к партнёру.
const UNI_COMMAND_REGISTER = 'register'; // Метод позволяет регистрировать пользователей как реселлерам, так и обычным пользователям. Полезен для партнёрских сайтов, желающих создать свою собственную страницу регистрации. Регистрируемый пользователь в таком случае автоматически закрепляется за партнёром. Обычный пользователь также может использовать метод register для ряда случаев.
const UNI_COMMAND_SET_SENDER_DOMAIN = 'setSenderDomain'; //Система зарегистрирует домен в списке для аутентификации и сгенерирует для него dkim-ключ.
const UNI_COMMAND_TRANSFER_MONEY = 'transferMoney'; // Метод для перевода денег со счёта одного пользователя на счёт другого. Оба пользователя должны быть прикреплены к вызывающему метод пользователю-реселлеру. Также можно переводить деньги со своего или на свой счёт.
const UNI_COMMAND_VALIDATE_SENDER = 'validateSender'; // Метод отправляет по адресу email письмо со ссылкой на подтверждение адреса в качестве обратного. После перехода по этой ссылке можно будет отправлять письма от имени этого email-адреса
// ПОЛУЧЕНИЕ СТАТИСТИКИ
const UNI_COMMAND_GET_CAMPAIGN_COMMON_STATS = 'getCampaignCommonStats'; // Получить общие сведения о результатах доставки сообщений в заданной рассылке
const UNI_COMMAND_GET_CAMPAIGN_DELIVERY_STATS = 'getCampaignDeliveryStats'; // Получить отчёт по результатам доставки сообщений в заданной рассылке.
const UNI_COMMAND_GET_CAMPAIGNS = 'getCampaigns'; // Метод для получения перечня всех имеющихся рассылок. Количество получаемых за раз рассылок ограничено числом 10000. Для получения полного списка рассылок при их количестве более 10000, используйте параметры from и to.
const UNI_COMMAND_GET_CAMPAIGNS_STATUS = 'getCampaignStatus'; // Узнать статус рассылки, созданной командой UNI_COMMAND_GET_CAMPAIGNS
const UNI_COMMAND_GET_MESSAGE = 'getMessage'; // Метод для получения информации об SMS или email сообщении.
const UNI_COMMAND_GET_MESSAGES = 'getMessages'; // Данный метод используется для получения списка писем, созданных как через личный кабинет UniSender, так и через API (createEmailMessage + createCampaign и т.п.). Для отображения списка писем необходимо задать временные рамки поиска и ваш API-ключ. Дополнительно можно указать количество писем для отображения в одном запросе, позицию, с которой будет отображаться список писем по данному запросу и формат для отображения возвращаемых данных (json/html).
const UNI_COMMAND_GET_VISITED_LINKS = 'getVisitedLinks'; // Получить отчёт по посещенным пользователями ссылкам в указанной email рассылке
const UNI_COMMAND_LIST_MESSAGES = 'listMessages'; // Данный метод используется для получения списка всех сообщений, созданных как через личный кабинет UniSender, так и через API. Метод работает как getMessages, отличие listMessages — не возвращается тело письма и вложения, но при этом возвращается login пользователя. Для получения тела и вложений используйте метод getMessage.
const UNI_COMMAND = 'command';
const UNI_COMMAND = 'command';
const UNI_COMMAND = 'command';
const UNI_COMMAND = 'command';
// ПАРАМЕНТРЫ
const UNI_ERROR = 'error';
const UNI_RESULT = 'result';
const UNI_API_KEY = 'api_key';
const UNI_LOGIN = 'login';
const UNI_TARIFF_ID = 'tariff_id';
const UNI_CHARGED_SUM = 'charged_sum';
const UNI_CHARGED_BONUS = 'charged_bonus';
const UNI_START_TIME = 'start_time';
const UNI_END_TIME = 'end_time';
const UNI_EMAIL = 'email';
const UNI_REGISTER_AFTER = 'registered_after';
const UNI_REGISTER_BEFORE = 'registered_before';
const UNI_NEED_CONFIRM = 'need_confirm'; // подтверждение регистрации
const UNI_PASSWORD = 'password'; // Пароль для нового пользователя. Если не указан, то генерируется случайный.
const UNI_NOTIFY = 'notify'; // 0 или 1 (по-умолчанию 0) посылать ли новому пользователю приветственное письмо с паролем.
const UNI_EXTRA = 'extra'; // Ассоциативный массив дополнительных полей. Поддерживаются дополнительные поля: «firstname», «channel», если need_confirm = 1 то extra может принимать еще 3-три параметра «lastname», «company», «phone».
const UNI_TIMEZONE = 'timezone'; // Europe/Minsk
const UNI_COUNTRY_CODE = 'country_code'; // Трёхбуквенный код страны по ISO 3166-1 alpha-3. Если не указан, будет установлено значение «ZZZ».
const UNI_CURRENCY_CODE = 'currency_code'; // Трёх буквенный код валюты счёта пользователя. На данный момент возможны RUB, USD, EUR и UAH.
const UNI_IP = 'ip'; // IP-адрес, с которого поступила заявка о регистрации, в формате «NNN.NNN.NNN.NNN».
const UNI_TEST_MODE = 'test_mode'; // Тестовое создание пользователя, принимает значения 0 (выкл), 1 (вкл) по умолчанию 0.
const UNI_DOMAIN = 'domain'; // Имя домена, без указания протокола. Например, example.com.
const UNI_USER_NAME = 'username'; // Логин пользователя в системе.
const UNI_SOURCE_LOGIN = 'source_login'; // Логин пользователя, со счёта которого списываются деньги.
const UNI_TARGET_LOGIN = 'target_login'; // Логин пользователя, на счёт которого зачисляются деньги.
const UNI_SUM = 'sum'; // Сумма, перечисляемая со счёта на счёт.
const UNI_CURRENCY = 'currency'; // Валюта, в которой задана сумма RUB, EUR, UAH или USD. При несовпадении валюты с валютами счёта одного из пользователей будет проведена конвертация по внутреннему курсу.
const UNI_CAMPAIGN_ID = 'campaign_id'; // Идентификатор кампании, полученный при вызове метода createCampaign.
const UNI_USER_CAMPAIGN_ID = 'user_campaign_id'; // Идентификатор кампании, полученный при вызове метода
const UNI_CHANGED_SINCE = 'changed_since'; // Возвращать все статусы адресов, изменившиеся начиная с указанного времени включительно (в формате «ГГГГ-ММ-ДД чч:мм:сс», часовой пояс UTC). Если аргумент отсутствует, то возвращаются все статусы.
const UNI_FIELD_IDS = 'field_ids'; // Список id дополнительных полей, переданных через запятую.
const UNI_FROM = 'from'; // Дата и время старта рассылки, начиная с которой нужно выводить рассылки, в формате «ГГГГ-ММ-ДД чч:мм:сс», часовой пояс UTC.
const UNI_TO = 'to'; // Дата и время старта рассылки, заканчивая которой нужно выводить рассылки, в формате «ГГГГ-ММ-ДД чч:мм:сс», часовой пояс UTC.
const UNI_LIMIT = 'limit'; // Количество записей в ответе на один запрос должно быть целым числом в диапазоне 1 — 100 , по умолчанию стоит 50 записей.
const UNI_OFFSET = 'offset'; // Параметр указывает, с какой позиции начинать выборку. Значение должно быть 0, или больше (позиция первой записи начинается с 0), по умолчанию 0.
const UNI_ID = 'id'; // id — 31-битное положительное целое, идентификатор сообщения. Такие идентификаторы возвращаются методами createEmailMessage и createSmsMessage. id можно передавать как одно число или как массив для получения нескольких писем (см. пример ниже).
const UNI_FORMAT = 'format'; // формат вывода принимает значения html | json, по умолчанию json.
const UNI_DATE_FROM = 'date_from'; // дата создания больше чем, формат yyyy-mm-dd hh:mm UTC.
const UNI_DATE_TO = 'date_to'; // дата создания меньше чем, формат yyyy-mm-dd hh:mm UTC.
const UNI_GROUP = 'group';
const UNI_ = '';
const UNI_ = '';
const UNI_ = '';
const UNI_ = '';
function UniRules(){
$array = array(
self::UNI_COMMAND_CHANGE_TARIF=>array(
self::UNI_API_KEY,
self::UNI_LOGIN,
self::UNI_TARIFF_ID
),
self::UNI_COMMAND_CHECK_USER_EXIST=>array(
self::UNI_API_KEY,
self::UNI_LOGIN,
self::UNI_EMAIL,
),
self::UNI_COMMAND_GET_AVAILABLE_TARIFFS=>array(
self::UNI_API_KEY,
self::UNI_LOGIN,
),
self::UNI_COMMAND_GET_CHECKED_EMAIL=>array(
self::UNI_API_KEY,
self::UNI_LOGIN,
self::UNI_EMAIL,
),
self::UNI_COMMAND_GET_USER_INFO=>array(
self::UNI_API_KEY,
self::UNI_LOGIN,
),
self::UNI_COMMAND_GET_USERS=>array(
self::UNI_API_KEY,
self::UNI_REGISTER_AFTER,
self::UNI_REGISTER_BEFORE,
),
self::UNI_COMMAND_REGISTER=>array(
self::UNI_API_KEY,
self::UNI_LOGIN,
self::UNI_EMAIL,
self::UNI_NEED_CONFIRM,
self::UNI_PASSWORD,
self::UNI_NOTIFY,
self::UNI_EXTRA,
self::UNI_TIMEZONE,
self::UNI_COUNTRY_CODE,
self::UNI_CURRENCY_CODE,
self::UNI_IP,
self::UNI_TEST_MODE,
),
self::UNI_COMMAND_SET_SENDER_DOMAIN=>array(
self::UNI_API_KEY,
self::UNI_DOMAIN,
self::UNI_USER_NAME,
),
self::UNI_COMMAND_TRANSFER_MONEY=>array(
self::UNI_API_KEY,
self::UNI_SOURCE_LOGIN,
self::UNI_TARGET_LOGIN,
self::UNI_SUM,
self::UNI_CURRENCY,
),
self::UNI_COMMAND_VALIDATE_SENDER=>array(
self::UNI_API_KEY,
self::UNI_LOGIN,
self::UNI_EMAIL,
),
self::UNI_COMMAND_GET_CAMPAIGN_COMMON_STATS=>array(
self::UNI_API_KEY,
self::UNI_CAMPAIGN_ID,
),
self::UNI_COMMAND_GET_CAMPAIGN_DELIVERY_STATS=>array(
self::UNI_API_KEY,
self::UNI_CAMPAIGN_ID,
self::UNI_USER_CAMPAIGN_ID,
self::UNI_CHANGED_SINCE,
self::UNI_FIELD_IDS,
),
self::UNI_COMMAND_GET_CAMPAIGNS=>array(
self::UNI_API_KEY,
self::UNI_FROM,
self::UNI_TO,
self::UNI_LIMIT,
self::UNI_OFFSET,
),
self::UNI_COMMAND_GET_CAMPAIGNS_STATUS=>array(
self::UNI_API_KEY,
self::UNI_CAMPAIGN_ID,
),
self::UNI_COMMAND_GET_MESSAGE=>array(
self::UNI_API_KEY,
self::UNI_ID,
),
self::UNI_COMMAND_GET_MESSAGES=>array(
self::UNI_API_KEY,
self::UNI_LIMIT,
self::UNI_OFFSET,
self::UNI_FORMAT,
self::UNI_DATE_FROM,
self::UNI_DATE_TO,
),
self::UNI_COMMAND_GET_VISITED_LINKS=>array(
self::UNI_API_KEY,
self::UNI_CAMPAIGN_ID,
self::UNI_GROUP,
),
self::UNI_COMMAND_LIST_MESSAGES=>array(
),
);
}
function UniUrls(){
$array = array(
// ПАРТНЕРСКИЕ САЙТЫ
self::UNI_COMMAND_CHANGE_TARIF =>'https://api.unisender.com/ru/api/changeTariff?format=json&api_key=KEY&login=LOGIN&tariff_id=TARIFF_ID',
self::UNI_COMMAND_CHECK_USER_EXIST =>'https://api.unisender.com/ru/api/checkUserExists?format=json&api_key=KEY&login=LOGIN&email=EMAIL',
self::UNI_COMMAND_GET_AVAILABLE_TARIFFS =>'https://api.unisender.com/ru/api/getAvailableTariffs?format=json&api_key=KEY&login=LOGIN',
self::UNI_COMMAND_GET_CHECKED_EMAIL =>'https://api.unisender.com/ru/api/getCheckedEmail?format=json&api_key=KEY&login=LOGIN&email=EMAIL',
self::UNI_COMMAND_GET_USER_INFO =>'https://api.unisender.com/ru/api/getUserInfo?format=json&api_key=KEY&login=LOGIN',
self::UNI_COMMAND_GET_USERS =>'https://api.unisender.com/ru/api/getUsers?format=json&api_key=KEY&registered_after=REGISTEREDAFTER&registered_before=REGISTEREDBEFORE',
self::UNI_COMMAND_REGISTER =>'https://api.unisender.com/ru/api/register?format=json&email=MAIL&login=LOGIN',
self::UNI_COMMAND_SET_SENDER_DOMAIN =>'https://api.unisender.com/ru/api/setSenderDomain?format=json&api_key=KEY&domain=UserDomain&username=UserLogin',
self::UNI_COMMAND_TRANSFER_MONEY =>'https://api.unisender.com/ru/api/transferMoney?format=json&api_key=KEY&source_login=FROM&target_login=TO&sum=SUM&currency=CURR',
self::UNI_COMMAND_VALIDATE_SENDER =>'https://api.unisender.com/ru/api/validateSender?format=json&api_key=KEY&email=EMAIL&login=LOGIN',
// ПОЛУЧЕНИЕ СТАТИСТИКИ
self::UNI_COMMAND_GET_CAMPAIGN_COMMON_STATS =>'https://api.unisender.com/ru/api/getCampaignCommonStats?format=json&api_key=KEY&campaign_id=ID',
self::UNI_COMMAND_GET_CAMPAIGN_DELIVERY_STATS=>array(
'https://api.unisender.com/ru/api/getCampaignDeliveryStats?format=json&api_key=KEY&campaign_id=ID &changed_since=DT',
'https://api.unisender.com/ru/api/getCampaignDeliveryStats?format=json&api_key=KEY&user_campaign_id=ID &changed_since=DT',
),
self::UNI_COMMAND_GET_CAMPAIGNS =>'https://api.unisender.com/ru/api/getCampaigns?format=json&api_key=KEY&from=TIME&to=TIME',
self::UNI_COMMAND_GET_CAMPAIGNS_STATUS =>'https://api.unisender.com/ru/api/getCampaignStatus?format=json&api_key=KEY&campaign_id=ID',
self::UNI_COMMAND_GET_MESSAGE =>'https://api.unisender.com/ru/api/getMessage?id=ID&api_key=KEY',
self::UNI_COMMAND_GET_MESSAGES =>'https://api.unisender.com/ru/api/getMessages?api_key=KEY&date_from=yyyy-mm-dd hh:mm&date_to=yyyy-mm-dd hh:mm',
self::UNI_COMMANDGET_VISITED_LINKS =>'https://api.unisender.com/ru/api/getVisitedLinks?format=json&api_key=KEY&campaign_id=ID &group=1',
self::UNI_COMMAND_LIST_MESSAGES =>'https://api.unisender.com/ru/api/listMessages?format=json&api_key=KEY',
);
}
}