Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/886: Рейтинг темы: голосов - 886, средняя оценка - 4.97
17 / 14 / 0
Регистрация: 22.04.2016
Сообщений: 287
1

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (5)

04.05.2017, 15:29. Показов 166977. Ответов 876

Author24 — интернет-сервис помощи студентам
Предыдущая тема: Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (4)


И так мы Я и umatkot, Берёмся за реализацию всего этого ... безобразия, кто хочет присоединиться пишите в личку.

Ссылка на гидхаб проекта будет предоставлена после того как мы запилим начальную версию с более менее работающим функционалом и маном интеграции...
3
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.05.2017, 15:29
Ответы с готовыми решениями:

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (3)
Предыдущая тема: https://www.cyberforum.ru/web-services-wcf/thread1776736.html Кто нибудь знает...

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ
Здравствуйте! Передо мной стоит задача интеграции с системой ГИС ЖКХ...

Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (4)
Предыдущая тема: https://www.cyberforum.ru/web-services-wcf/thread1800721.html Здравствуйте....

.NET 4.x Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (2)
Начало темы здесь: https://www.cyberforum.ru/web-services-wcf/thread1615223.html umatkot, Да, к...

876
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
05.05.2017, 07:54 2
Дело в том, что функционала много, на самом деле мы выложим вначале полностью рабочую базовую версию. Все, кто может воспользоваться - могут посмотреть на реализацию архитектуры - выделить слабые места, прокомментировать - что-либо добавить - это приветствуется. Реализовать всё это проблематично, так как итоговый продукт имеет размытые границы применения - он более может применяться как проксик (ГИC)SOAP - REST/ Операции могут все дублироваться в базу - так как есть цель все запросы логировать до такой степени детализации на сколько это возможно, чтобы при отсутствии с интернетом, можно было получать информацию из локальных баз.

Что планируется: Использовать код от hmm, он хорошо поработал над избавлением от КриптоПро.NET, использовать статью с хабры, в которой имеется возможность использовать библиотеку OpenSSL для реализации алгоритмов ГОСТ и сделать фундамент платформы, которая может быть полноценным ГИС ЖКХ прокси, но уже с иным уровнем сложности реализации доступа для пользователей.
0
0 / 0 / 0
Регистрация: 01.10.2015
Сообщений: 9
05.05.2017, 08:36 3
Последнюю неделю работаю в сфере ЖКХ ) Ни у кого не работает загрузка/выгрузка фалообмена?
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
05.05.2017, 09:11 4
bitc8, А что ТП?
0
0 / 0 / 0
Регистрация: 01.10.2015
Сообщений: 9
05.05.2017, 09:17 5
Не понял что за ТП ?
0
187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801
05.05.2017, 15:52 6
bitc8, техподдержка
0
64 / 55 / 1
Регистрация: 01.04.2016
Сообщений: 345
05.05.2017, 20:59 7
Цитата Сообщение от umatkot Посмотреть сообщение
использовать статью с хабры, в которой имеется возможность использовать библиотеку OpenSSL для реализации алгоритмов ГОСТ
В BouncyCastle уже есть реализация криптографии по ГОСТ, прототип я сейчас дописал и выложил. Расчет хэша работает и был мной проверен. Если кому-то нужно, то он может дописать реализацию подписи.
Но мне эта затея на настоящий момент кажется сомнительной, я не вижу большого смысла выковыривать приватный ключ из контейнера и перекладывать его в OpenSSL/BouncyCastle.

Моя цель была избавиться от глюков КриптоПро.NET, за прошедший месяц от клиентов нареканий нет.
0
4 / 4 / 0
Регистрация: 10.04.2017
Сообщений: 19
08.05.2017, 12:27 8
Добрый день!

Вопрос наверно для кого то покажется глупым, но скоро кажись у меня мозг взорвется.

Есть например вот такой пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
var request4 = new gibs.importPaymentDocumentDataRequest
                {
                    RequestHeader = new gibs.RequestHeader
                    {
                        Date = DateTime.Now,
                        MessageGUID = Guid.NewGuid().ToString(),
                        Item = "badd8b79-d31f-4fbb-baf0-be921a52512e",
                        ItemElementName = Infrastructure.BillsService.ItemChoiceType2.orgPPAGUID
                        
                    },
                    importPaymentDocumentRequest = new gibs.importPaymentDocumentRequest
                    {
                        version = "10.0.1.1",
                        Id = CryptoConsts.CONTAINER_ID
                    }
                };
                var PaymentDocumentInformation = new gibs.PaymentDocumentType
                {
                    AddressInfo = new gibs.PaymentDocumentTypeAddressInfo
                    {
                        HeatedArea = 20,
                        HeatedAreaSpecified = true,
                        LivingPersonsNumber = 2,
                        LivingPersonsNumberSpecified = true,
                        ResidentialSquare = 40,
                        ResidentialSquareSpecified = true,
                        TotalSquare = 50,
                        TotalSquareSpecified = true
                    }
                };
                var PaymentDocument = new gibs.importPaymentDocumentRequestPaymentDocument
                {
                    AccountGuid = Guid.NewGuid().ToString(),
                    PaymentDocumentNumber = "123456",
                    AdvanceBllingPeriod = 11
                };
                PaymentDocument.Items = new object[] { PaymentDocumentInformation };
                var PaymentInformation = new gibs.importPaymentDocumentRequestPaymentInformation
                {
                    BankBIK = "04601593888",
                    operatingAccountNumber = "4070281060000000087788",
                    TransportGUID = Guid.NewGuid().ToString()
                };
                var WithdrawPaymentDocument = new gibs.importPaymentDocumentRequestWithdrawPaymentDocument
                {
                    PaymentDocumentID = "1",
                    TransportGUID = Guid.NewGuid().ToString()
                };
                //request4.importPaymentDocumentRequest.Items = new object[5] { (int)11, (short)16, (Gis.Infrastructure.BillsService.PaymentInformationKeyType)PaymentInformation, (Gis.Infrastructure.BillsService.PaymentDocumentType)PaymentDocument, WithdrawPaymentDocument };
                request4.importPaymentDocumentRequest.Items = new object[] { (int)11, (short)2016, PaymentInformation, PaymentDocument, WithdrawPaymentDocument };
В этом примере создаться (заполнится данными) один документ.
А как сделать так, чтобы можно было заполнить несколько документов? Вот например я извлекаю данные из БД в какой нибудь List<importPaymentDocument> и как из этого List заполнить объект request4.importPaymentDocumentRequest.Items? Если просто присваивать, то оно будет просто перезаписываться.

Добавлено через 15 секунд
0
0 / 0 / 0
Регистрация: 01.10.2015
Сообщений: 9
10.05.2017, 17:23 9
А файлообмен все стоит. Беда и в том, чтобы обновить договор РСО требуется заново грузить этот файл. Вот засада то!

У кого грузит файло? Не важно кусками или целиком?
0
0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 2
11.05.2017, 08:12 10
Добрый день.
Экспорт истории показаний ПУ - exportMeteringDeviceHist.
Подскажите, какие параметры нужно в этот сервис подать, чтобы получить ТЕКУЩИЕ показания?
Подавал (одновременно):
1) ГУИД дома
2) Ресурсы (хол.вода, гор.вода)
3) Дата ввода показаний с.. по ..

В ответ получаю "EXP001000: Внутренняя ошибка"
0
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 12
12.05.2017, 13:32 11
Коллеги подскажите, что делаю не так?
Не хватает толку задать Критерии при экспорте списка договоров управления:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
            var service = new HouseManagementPortsTypeClient("HouseManagementPort");
            service.ClientCredentials.UserName.UserName = "sit";
            service.ClientCredentials.UserName.Password = "rZ_GG72XS^Vf55ZW";
            var request = new exportCAChDataRequest1
            {
                RequestHeader = new RequestHeader
                {
                    Item = param_orgPPAGUID, // заря
                    ItemElementName = ItemChoiceType.orgPPAGUID,
                    Date = DateTime.Now,
                    MessageGUID = Guid.NewGuid().ToString(),
                    IsOperatorSignature = true
                    //,IsOperatorSignatureSpecified=true
                },
                exportCAChRequest = new exportCAChRequest
                {
                    version = "10.0.1.2",
                    Id = CryptoConsts.CONTAINER_ID,
                    Criteria = new exportCAChRequestCriteriaType[]
                    {
                         Items = new string[] { "6141b1da-25a8-4c73-b05d-7890df7a1399" },
                         ItemsElementName = new Infrastructure.HouseManagementService.ItemsChoiceType13[] { ItemsChoiceType13.UOGUID }
                    }
                }
            };
Ругается на Items и ItemsElementName - не существуют в текущем контексте

Добавлено через 20 часов 20 минут
Разобрался.
0
17 / 14 / 0
Регистрация: 22.04.2016
Сообщений: 287
17.05.2017, 13:42  [ТС] 12
Коллеги, у кого работает обмен файлами с ГИС ЖКХ, отзовитесь. Что не так с запросом?
Код
REQUEST:
http://217.107.108.147:10082/ext-bus-file-store-service/rest/agreements/?upload

Date: Mon, 08 May 2017 22:46:37 GMT
Host: 217.107.108.147:10082
Content-Length: 0
Connection: Keep-Alive
Authorization: Basic c2l0OnJaX0dHNzJYU15WZjU1Wlc=
X-Upload-Dataprovider: f81f5928-d371-4735-ad6b-9516104acd53
X-Upload-Filename: test.zip
X-Upload-Length: 11351233
X-Upload-Part-Count: 3

RESPONSE:
HTTP/1.1 400 Bad Request
Server: nginx
Date: Tue, 09 May 2017 08:28:01 GMT
Content-Type: application/octet-stream
Content-Length: 39
Connection: keep-alive
Location: /ext-bus-file-store-service/rest/agreements

X-Upload-Error:FieldValidationException
0
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 5
19.05.2017, 11:44 13
Добрый день, коллеги! Подскажите, пожалуйста! При попытке выполнить импорт платежа, выдаёт ошибку:
C#
1
2
3
System.ServiceModel.CommunicationException: "Ошибка сериализации одного из заголовков сообщения importNotificationsOfOrderExecutionRequest1: "Невозможно создать временный класс (результат=1).
error CS0030: Преобразование типа "Gis.PaymentAsync.PaymentDocument[]" в "Gis.PaymentAsync.PaymentDocument" невозможно
error CS0029: Неявное преобразование типа "Gis.PaymentAsync.PaymentDocument" в "Gis.PaymentAsync.PaymentDocument[]" невозможно
Код метода:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public PaymentAsync.AckRequest SetNotificationsOfOrderExecution()
        {
            var service = new PaymentAsync.PaymentPortsTypeAsyncClient(this.Port);
            service.ClientCredentials.UserName.UserName = CryptoConsts.UserName;
            service.ClientCredentials.UserName.Password = CryptoConsts.Password;
            PaymentAsync.RequestHeader RequestHeader = new PaymentAsync.RequestHeader
            {
                Date = DateTime.Now,
                MessageGUID = Guid.NewGuid().ToString(),
                Item = Crypto.CryptoConsts.ORGPPAGUID,
                ItemElementName = PaymentAsync.ItemChoiceType.orgPPAGUID
                
            };
            PaymentAsync.importNotificationsOfOrderExecutionRequestNotificationOfOrderExecutionType pay = new PaymentAsync.importNotificationsOfOrderExecutionRequestNotificationOfOrderExecutionType
            {
                SupplierInfo = new PaymentAsync.NotificationOfOrderExecutionTypeSupplierInfo
                {
                    SupplierID = "3659847",
                    SupplierName = "Тест"
                },
                RecipientInfo = new PaymentAsync.NotificationOfOrderExecutionTypeRecipientInfo
                {
                    INN = "7176522337",
                    Item = new PaymentAsync.NotificationOfOrderExecutionTypeRecipientInfoLegal
                    {
                        Name = "OOO ТЕСТ",
                        KPP = "123456789"
                    },
                    PaymentInformation = new PaymentAsync.PaymentInformationType
                    {
                        RecipientINN = "7176522338",
                        RecipientKPP = "987456321",
                        BankName = "Тест",
                        PaymentRecipient = "315644444",
                        BankBIK = "315644448",
                        operatingAccountNumber = "12352145644444444444",
                        CorrespondentBankAccount = "31514515154444444444"
                    }
 
                },
                OrderInfo = new PaymentAsync.NotificationOfOrderExecutionTypeOrderInfo
                {
                    OrderID = "10475017799000003006201614682552",
                    OrderDate = DateTime.Now.Date,
                    OrderNum = "100500",
                    Amount = 1005001,
                    PaymentPurpose = "Тест",
                    Comment = "Тест",
                    PaymentDocumentID = "21da2e17-e543-4c73"
                },
                TransportGUID = Guid.NewGuid().ToString()
            };
            PaymentAsync.importNotificationsOfOrderExecutionRequest request = new PaymentAsync.importNotificationsOfOrderExecutionRequest
            {
                NotificationOfOrderExecutionType = new[] { pay },
                Id = CryptoConsts.CONTAINER_ID,
                version = "10.0.2.1"
 
            };
 
            PaymentAsync.AckRequest result = null;
            
            service.importNotificationsOfOrderExecution(RequestHeader,request, out result);
            return result;
        }
Как я понял, не получается сериализовать массив. Подскажите, как правильно это сделать?
0
12 / 10 / 1
Регистрация: 03.07.2015
Сообщений: 42
19.05.2017, 19:12 14
Ошибка сериализации одного из заголовков сообщения importSupplierNotificationsOfOrderExecutionRequest1: "Невозможно создать временный класс (результат=1).
error CS0030: Преобразование типа "Gis.PaymentService.Async.PaymentDocument[]" в "Gis.PaymentService.Async.PaymentDocument" невозможно
error CS0029: Неявное преобразование типа "Gis.PaymentService.Async.PaymentDocument" в "Gis.PaymentService.Async.PaymentDocument[]" невозможно
". Подробнее см. InnerException.


Та же ошибка...
0
17 / 14 / 0
Регистрация: 22.04.2016
Сообщений: 287
23.05.2017, 11:14  [ТС] 15
Мы допиливаем реализацию файлового обмена....

Добавлено через 15 секунд
Мы допиливаем реализацию файлового обмена....
Ланит починил Обмен файлами....
0
12 / 10 / 1
Регистрация: 03.07.2015
Сообщений: 42
24.05.2017, 07:40 16
http://webservices20.blogspot.... pe-to.html

Косяк .Net

Убери в прокси PaymentServiceAsync.cs [][] (лишние двойные квадратные скобки) в блоке
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public partial class getStateResultExportPaymentDocumentDetailsResult
    {
        
        private PaymentDocument[] chargeField;
        
        /// <remarks/>
        [System.Xml.Serialization.XmlArrayAttribute(Order=0)]
        [System.Xml.Serialization.XmlArrayItemAttribute("PaymentDocument", typeof(PaymentDocument), IsNullable=false)]
        public PaymentDocument[] Charge
        {
            get
            {
                return this.chargeField;
            }
            set
            {
                this.chargeField = value;
            }
        }
    }
1
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 5
24.05.2017, 07:45 17
Цитата Сообщение от Electronic-E2 Посмотреть сообщение
Косяк .Net

Убери в прокси PaymentServiceAsync.cs [][] (лишние двойные квадратные скобки) ...
Спасибо большое, помогло!
0
17 / 14 / 0
Регистрация: 22.04.2016
Сообщений: 287
24.05.2017, 17:39  [ТС] 18
первая версия много-поточного обмена завершена, во второй версии будут решены такие проблемы как Докачка и Дозагрузка частей БОЛЬШИХ файлов, Оптимизация загрузки Оперативной памяти...
0
17 / 14 / 0
Регистрация: 22.04.2016
Сообщений: 287
25.05.2017, 09:06  [ТС] 19
Весь цикл Загрузки\Выгрузки 6ти архивов разного размера(14-16mb)
Миниатюры
Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (5)   Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по ГОСТ (5)  
0
1 / 1 / 0
Регистрация: 13.10.2016
Сообщений: 64
25.05.2017, 10:07 20
Скажите, у меня сегодня весь день тестовый сервер http://217.107.108.156:10082 отвечает:

ru.gosuslugi.dom.schema.integration.nsi_common_service.Fault: EXP002002: Превышено максимальное время обработки запроса

у кого нить так же?
0
25.05.2017, 10:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2017, 10:07
Помогаю со студенческими работами здесь

Интеграция с ГИС ЖКХ и подпись SOAP без Крипто .NET и stunnel
Решил создать отдельную тему, так как в теме Интеграция с ГИС ЖКХ. Подпись SOAP и защита канала по...

Soap, Java, Гис ЖКХ
Добрый день! Имеет ли кто опыт работы с soap в Java? Поставлена задача наладить работу с ГИС ЖКХ,...

1С и ГИС ЖКХ. Интеграция
Доброго дня, коллеги! Я думаю многие слышали о такой ГИС, как ЖКХ. Друзья, сталкивался ли кто...

Интеграция с ГИС ЖКХ (ГЖ). 400 Bad request
Вводная: 1. C#. Классы proxy для работы с API генерятся утилитой SvcUtil.exe из wsdl-ек. 2. При...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru