Works with API of Portal5.
Работа с Portal5 по API.
Appsettings с именем исполняемой программы - в отличие от принятого при разработке в .NET единого имени, так можно все файлы настроек разных программ размещать в одной папке для скриптов, но при этом какие-то общие параметры (будут иметь приоритет) вынести из папки с программой, где они могут быть нечаянно затерты при обновлении версии или конфиденциальная информация может попасть в дистрибутивный архив:
CryptoBot.config.json
(located with Appexe
)%ProgramData%\Diev\CryptoBot.config.json
(these settings overwrite if exist)
Windows Credential Manager в Панели управления - Диспетчер учетных данных (все пароли для всех программ меняются в одном месте и скрыты от пользователей, как было бы при хранении в индивидуальных файлах настроек к каждой программе):
Portal5test *
(name:Portal5test https://{host}
, user:{username}
, pass:{password}
)Portal5 *
(name:Portal5 https://{host}
, user:{username}
, pass:{password}
)CryptoPro My
(name:CryptoPro My
, user:{cert}
, pass:{pin}
)SMTP *
(name:SMTP {host} {port} tls
, user:{sender}
, pass:{password}
)
CLI - параметры командной строки:
- Task:
-z XX
- 'Zadacha_XX
'
- Filter:
-d
- today only-f yyyy-MM-dd
- from date-t yyyy-MM-dd
- to date
Документация на REST-API по Portal5 (ЕПВВ) находится по адресу https://www.cbr.ru/lk_uio/guide/rest_api/.
В программе реализованы по документу "30.09.2023 Описание внешнего взаимодействия. Технические условия внешнего обмена. Версия 2.4" все актуальные разделы 3.1.3-3.1.6.
Программа получает с портала всю справочную информацию и решает следующие
конкретные задачи (названия приведены по справочнику задач tasks
):
- Zadacha_2-1 - Ответ на запрос, предписание. Запрос в Банк России. Квитанции из ВП ЕПВВ
- Zadacha_3-1 - Запрос, предписание. Ответ на запрос НФО. Квитанции из САДД
- Zadacha_54 - Запросы ЦИК
- Zadacha_130 - Получение информации об уровне риска ЮЛ/ИП
- Zadacha_137 - Ежедневное информирование Банка России о составе и объеме клиентской базы (ФПС "Отчетность")
- Очистка сообщений отчетности ПП Дельта в inbox
- Zadacha_97 - Извещение о результатах контроля информации о ВПОДК и их результатах (ИЭС1)
- Zadacha_107 - Извещение о результатах контроля отчетности субъектов НПС (ИЭС1)
- Zadacha_114 - Извещение о результатах контроля представления формы 0409310 (ИЭС1)
- Zadacha_123 - Извещение о результатах контроля представления формы 0409310 (ИЭС2)
- Zadacha_130 - Получение информации об уровне риска ЮЛ/ИП
- Zadacha_133 - Извещение о результатах контроля отчетности субъектов НПС (ИЭС2)
- Zadacha_140 - Извещение о результатах контроля информации о ВПОДК и их результатах (ИЭС2)
- Zadacha_156 - Извещение о результатах контроля представления формы 0409601 отчет ко(нко) (ИЭС1) и др.
- Zadacha_159 - Извещение о результатах контроля представления формы 0409601 отчет ко(нко) (ИЭС2) и др.
- Очистка сообщений отчетности ПП Дельта в outbox
- Zadacha_155 - Представление отчетности КО в Банк России
Легко добавить и остальные по потребности.
К каждой задаче в API может применяться фильтр дат (в программе некоторые зафиксированы на 14 или 30 дней - по смыслу).
По завершении каждой операции подписчикам отправляются уведомления по e-mail.
Получение реестра (Zadacha_130):
CryptoBot -z 130
Отправка перечня клиентов (Zadacha_137):
CryptoBot -z 137
Скачивание Входящих писем из ЛК (Zadacha_3-1) по фильтру дат (за сегодня):
CryptoBot -z 3-1 -d
Скачивание Исходящих писем из ЛК (Zadacha_2-1) по фильтру дат (за 2023):
CryptoBot -z 2-1 -f 2023-01-01 -t 2024-01-01
Скачивание запросов ЦИК (Zadacha_54) по фильтру дат (с начала месяца):
CryptoBot -z 54 -f 2024-07-01
Если стоит CryptoPro CSP, то все скачанные пакеты можно расшифровать для помещения на хранение. После скачивания можно очистить место в ЛК.
Очистка ЛК от служебной информации ПП Дельта. В коде зафиксировано оставить последние 30 дней (на самом деле и они не нужны - все есть в самой ПП Дельта). Недокументированный код 0 для этой задачи назначен условно - для целей единообразного запуска программы:
CryptoBot -z 0
- .NET 8 Desktop Runtime
- CryptoPro CSP (опционально - для криптоопераций)
Build an app with many dlls (в папке дистрибутива будет exe
и очень много
сопутствующих отдельных dll
- вариант разработки в .NET по умолчанию):
dotnet publish CryptoBot\CryptoBot.csproj -o Distr
Build a single-file app when NET Desktop runtime required (будет один
исполняемый файл exe
, но требуется предварительная установка
общесистемной среды .NET - предпочитаемый мною вариант):
dotnet publish CryptoBot\CryptoBot.csproj -o Distr -r win-x64 -p:PublishSingleFile=true --no-self-contained
Build a single-file app when no runtime required (вариант, когда предварительная установка общесистемной среды .NET не нужна - всё нужное из среды встроено в один большой файл - может быть полезно для запуска в закрытой системе на AstraLinux, например, если применимо):
dotnet publish CryptoBot\CryptoBot.csproj -o Distr -r win-x64 -p:PublishSingleFile=true
Или просто используйте build.cmd
с предустановленным одним
из этих вариантов и созданием дистрибутивных архивов с исполняемой
программой и исходниками конкретной версии.
Номер версии программы указывается по нарастающему принципу:
- Требуемая версия .NET (8);
- Год текущей разработки (2024);
- Месяц без первого нуля и день редакции (624 - 24.06.2024);
- Номер билда - просто нарастающее число для внутренних отличий. Если настроен сервис AppVeyor, то это его автоинкремент.
Продукт развивается для собственных нужд, а не по коробочной стратегии, и поэтому Breaking Changes могут случаться чаще, чем это принято в SemVer.
Licensed under the Apache License, Version 2.0.
Вы можете использовать эти материалы под свою ответственность.