Мастер, QUIK: короткое письмо в ARQA с внешним адресом, памятка администратору, понятный выбор работы с QUIK
- Письмо в ARQA: организация просит подключить модуль неторговых поручений, выдать логин и пароль и разрешить подключение с нашего внешнего адреса — о bj и внутреннем устройстве ни слова. Внешний адрес bj узнаёт у сервера лицензий (GET /v1/ip, раз в час); пометка — убедиться, что адрес постоянный. - Под письмом — «Памятка администратору QUIK» (классы, логин InstrEu, справочник, перезапуск модуля) со ссылкой на подробную инструкцию. - Вместо свёрнутого «Автоматический цикл M2M — выключен · настроить» и справочника под раскрытием: после проверки подключения — «Как bj работает с QUIK»: «Только сверка» или «Автоматически» (+ торговый счёт), сохраняется сразу; справочник — строкой состояния с напоминанием о перезапуске. До проверки — одна строка. Тонкая настройка — в «Настройка → QUIK», мастер её не трогает. - Проверка МНП: ошибка сертификата (x509, «doesn't contain any IP SANs») — подсказка включить «Доверять сертификату сервера», «Дополнительно» раскрывается. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -64,12 +64,11 @@ func letterFor(s Settings, key string) (Letter, bool) {
|
||||
Subject: "Заявка на подключение к промышленному контуру для переводов M2M — " + name,
|
||||
Body: fmt.Sprintf("В НКО АО НРД\n(служба поддержки электронного документооборота)\n\n%s (ИНН %s, код участника %s) завершила тестирование обмена сообщениями о переводах ценных бумаг M2M на контуре TEST3 и просит подключить промышленный контур электронного документооборота НРД.\n\nСведения для подключения:\n%s\n— ключ электронной подписи для промышленного контура: выдан УЦ Московской биржи [номер сертификата, срок действия]\n\nЕсли для подключения установлена форма заявки — просим её направить, а это письмо считать сопроводительным.%s",
|
||||
name, inn, code, req, sign)}, true
|
||||
case "arqa":
|
||||
ip := pickStr(outboundIP(s.Quik.Server, s.Quik.Port), firstServerIP())
|
||||
case "arqa": // коротко и по делу: о внутреннем устройстве (bj, процедуры, классы) поставщику знать не нужно
|
||||
return Letter{Key: key, Title: "Письмо в ARQA Technologies: модуль неторговых поручений", To: "ARQA Technologies, служба поддержки QUIK",
|
||||
Subject: "Подключение модуля неторговых поручений QUIK для переводов M2M — " + name,
|
||||
Body: fmt.Sprintf("В ARQA Technologies\n(служба поддержки QUIK)\n\n%s (ИНН %s) подключает систему Bridge&Join для переводов ценных бумаг M2M через НРД. Система работает с модулем неторговых поручений (МНП) QUIK через его базу данных. Просим:\n\n1. Подключить и настроить модуль неторговых поручений для переводов M2M:\n — классы инструментов INSTROUTM2M (вывод ценных бумаг) и INSTRINM2M (ввод ценных бумаг);\n — типы неторговых поручений для M2M (100/101) в QAdmin;\n — справочник депозитариев-получателей M2MDepoRecipients: его заполняет внешняя система.\n2. Выдать SQL-логин для внешней системы с правами API модуля (роль InstrEu): процедуры sp_NewInstrSec, sp_SignInstrSec, cancel_instruction; таблицы Export, Contracts, M2MDepoRecipients.\n3. Разрешить подключение к базе данных МНП с сервера Bridge&Join (адрес %s) и сообщить адрес сервера, порт и имя базы.\n4. После первого заполнения справочника M2MDepoRecipients перезапустить модуль неторговых поручений: справочник читается при запуске.%s",
|
||||
name, inn, orBracket(ip, "IP-адрес сервера bj"), sign)}, true
|
||||
Subject: "Подключение модуля неторговых поручений QUIK — " + name,
|
||||
Body: fmt.Sprintf("В ARQA Technologies\n(служба поддержки QUIK)\n\n%s (ИНН %s) просит:\n\n1. Подключить модуль неторговых поручений QUIK (переводы ценных бумаг M2M).\n2. Выдать логин и пароль для подключения к базе данных модуля неторговых поручений.\n3. Разрешить подключение к базе данных модуля с нашего адреса %s и сообщить адрес сервера, порт и имя базы.%s",
|
||||
name, inn, arqaAddr(publicIP()), sign)}, true
|
||||
case "dba":
|
||||
ip := pickStr(outboundIP(s.Fancy.Server, s.Fancy.Port), firstServerIP())
|
||||
f := s.Fancy
|
||||
@@ -89,6 +88,16 @@ func letterFor(s Settings, key string) (Letter, bool) {
|
||||
return Letter{}, false
|
||||
}
|
||||
|
||||
// arqaAddr — наш внешний адрес для письма в ARQA с пометкой для отправителя: подключение разрешат только
|
||||
// с этого адреса, поэтому он должен быть постоянным (у провайдера адрес может меняться). Пометку перед
|
||||
// отправкой удаляют — как и всё в квадратных скобках.
|
||||
func arqaAddr(ip string) string {
|
||||
if ip == "" {
|
||||
return "[постоянный внешний IP-адрес вашего сервера — уточните у сетевого администратора]"
|
||||
}
|
||||
return ip + " [убедитесь, что это постоянный внешний адрес вашей организации и он не меняется — уточните у сетевого администратора; пометку удалите]"
|
||||
}
|
||||
|
||||
func firstServerIP() string {
|
||||
_, ips := localAddrs()
|
||||
for _, ip := range ips {
|
||||
|
||||
Reference in New Issue
Block a user