Пример #1
0
        /// <summary>
        /// Получить статус обработки запроса
        /// </summary>
        /// <param name="_orgPPAGUID">
        /// Идентификатор зарегистрированной организации
        /// </param>
        /// <param name="_ackImpSupNotifOrderExec">
        /// Идентификатор сообщения, присвоенный ГИС ЖКХ
        /// </param>
        /// <returns></returns>
        public getStateResponse P_GetState(string _orgPPAGUID, string _ackImpSupNotifOrderExec)
        {
            var srvPaymentSrvAsync = new PaymentPortsTypeAsyncClient();

            srvPaymentSrvAsync.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["_login"];
            srvPaymentSrvAsync.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["_pass"];

            var reqImpSupNotifOrderExec_GS = new getStateRequest1
            {
                RequestHeader = new RequestHeader
                {
                    Date            = DateTime.Now,
                    MessageGUID     = Guid.NewGuid().ToString(),
                    ItemElementName = ItemChoiceType.orgPPAGUID,
                    Item            = _orgPPAGUID
                },
                getStateRequest = new getStateRequest
                {
                    MessageGUID = _ackImpSupNotifOrderExec
                }
            };

            var resGetState = srvPaymentSrvAsync.getState(reqImpSupNotifOrderExec_GS);

            return(resGetState);
        }
Пример #2
0
        /// <summary>
        /// Извещение о принятии к исполнению распоряжения, размещаемое исполнителем
        /// </summary>
        /// <param name="_orgPPAGUID">
        /// Идентификатор зарегистрированной организации
        /// </param>
        /// <param name="_listNotificationOfOrder">
        /// Массив передавамых документов (не более 1000 записей)
        /// </param>
        /// <returns></returns>
        public string SetSupplierNotificationsOfOrderExecution(string _orgPPAGUID, List <dynamic> _listNotificationOfOrder)
        {
            var srvPaymentSrvAsync = new PaymentPortsTypeAsyncClient();

            srvPaymentSrvAsync.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["_login"];
            srvPaymentSrvAsync.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["_pass"];

            var SupplierNotificationOfOrderExecution = new List <importSupplierNotificationsOfOrderExecutionRequestSupplierNotificationOfOrderExecution>();

            foreach (var item in _listNotificationOfOrder)
            {
                SupplierNotificationOfOrderExecution.Add(
                    new importSupplierNotificationsOfOrderExecutionRequestSupplierNotificationOfOrderExecution
                {
                    TransportGUID   = Guid.NewGuid().ToString(),
                    ItemElementName = ItemChoiceType1.PaymentDocumentID,
                    Item            = (string)item[0],
                    OrderDate       = item[1],
                    Amount          = Convert.ToDecimal(item[2].ToString("F"))
                });
            }

            var reqImpSupNotifOrderExec = new importSupplierNotificationsOfOrderExecutionRequest1
            {
                RequestHeader = new RequestHeader
                {
                    Date            = DateTime.Now,
                    MessageGUID     = Guid.NewGuid().ToString(),
                    ItemElementName = ItemChoiceType.orgPPAGUID,
                    Item            = _orgPPAGUID
                },
                importSupplierNotificationsOfOrderExecutionRequest = new importSupplierNotificationsOfOrderExecutionRequest
                {
                    version = "10.0.1.1",
                    Id      = CryptoConsts.CONTAINER_ID,
                    SupplierNotificationOfOrderExecution = SupplierNotificationOfOrderExecution.ToArray()
                }
            };

            var resImpSupNotifOrderExec = srvPaymentSrvAsync.importSupplierNotificationsOfOrderExecution(reqImpSupNotifOrderExec);
            var ackImpSupNotifOrderExec = resImpSupNotifOrderExec.AckRequest.Ack.MessageGUID.ToString();

            return(ackImpSupNotifOrderExec);
        }
Пример #3
0
        public IAck Send(object request)
        {
            using (var client = new PaymentPortsTypeAsyncClient(_binding, _remoteAddress)) {
                client.Endpoint.EndpointBehaviors.Add(new MyEndpointBehavior());

                if (!_config.IsPPAK)
                {
                    client.ClientCredentials.UserName.UserName = Constants.UserAuth.Name;
                    client.ClientCredentials.UserName.Password = Constants.UserAuth.Passwd;
                }

                if (!_config.UseTunnel)
                {
                    client.ClientCredentials.ClientCertificate.SetCertificate(
                        StoreLocation.CurrentUser,
                        StoreName.My,
                        X509FindType.FindByThumbprint,
                        base._config.CertificateThumbprint);
                }

                switch (request.GetType().Name)
                {
                case nameof(exportPaymentDocumentDetailsRequest1):
                    return(client.exportPaymentDocumentDetails(request as exportPaymentDocumentDetailsRequest1).AckRequest.Ack);

                case nameof(importNotificationsOfOrderExecutionRequest1):
                    return(client.importNotificationsOfOrderExecution(request as importNotificationsOfOrderExecutionRequest1).AckRequest.Ack);

                case nameof(importNotificationsOfOrderExecutionCancellationRequest1):
                    return(client.importNotificationsOfOrderExecutionCancellation(request as importNotificationsOfOrderExecutionCancellationRequest1).AckRequest.Ack);

                case nameof(importSupplierNotificationsOfOrderExecutionRequest1):
                    return(client.importSupplierNotificationsOfOrderExecution(request as importSupplierNotificationsOfOrderExecutionRequest1).AckRequest.Ack);

                default:
                    throw new ArgumentException($"{request.GetType().Name} - Не верный тип аргумента");
                }
            }
        }
Пример #4
0
        /// <summary>
        /// Извещение об аннулировании извещения о принятии к исполнению распоряжения
        /// </summary>
        /// <param name="_OrderID">
        /// Уникальный идентификатор распоряжения для нужд квитирования
        /// </param>
        /// <returns></returns>
        public string SetNotificationsOfOrderExecutionCancellation(string _orgPPAGUID, string _orderID)
        {
            var srvPaymentSrvAsync = new PaymentPortsTypeAsyncClient();

            srvPaymentSrvAsync.ClientCredentials.UserName.UserName = ConfigurationManager.AppSettings["_login"];
            srvPaymentSrvAsync.ClientCredentials.UserName.Password = ConfigurationManager.AppSettings["_pass"];

            var reqNotifOrderExecCancellation = new importNotificationsOfOrderExecutionCancellationRequest1
            {
                RequestHeader = new RequestHeader
                {
                    Date            = DateTime.Now,
                    MessageGUID     = Guid.NewGuid().ToString(),
                    ItemElementName = ItemChoiceType.orgPPAGUID,
                    Item            = _orgPPAGUID
                },
                importNotificationsOfOrderExecutionCancellationRequest = new importNotificationsOfOrderExecutionCancellationRequest
                {
                    version = "10.0.1.1",
                    Id      = CryptoConsts.CONTAINER_ID,
                    NotificationOfOrderExecutionCancellation = new NotificationOfOrderExecutionCancellationType[]
                    {
                        new NotificationOfOrderExecutionCancellationType
                        {
                            TransportGUID    = Guid.NewGuid().ToString(),
                            CancellationDate = DateTime.Now,
                            Comment          = "Сведения загружены ошибочно",
                            OrderID          = _orderID
                        }
                    }
                }
            };

            var resNotifOrderExecCancellation = srvPaymentSrvAsync.importNotificationsOfOrderExecutionCancellation(reqNotifOrderExecCancellation);
            var ackNotifOrderExecCancellation = resNotifOrderExecCancellation.AckRequest.Ack.MessageGUID.ToString();

            return(ackNotifOrderExecCancellation);
        }
Пример #5
0
        public bool TryGetResult(IAck ack, out IGetStateResult result)
        {
            using (var client = new PaymentPortsTypeAsyncClient(_binding, _remoteAddress)) {
                client.Endpoint.EndpointBehaviors.Add(new MyEndpointBehavior());

                if (!_config.IsPPAK)
                {
                    client.ClientCredentials.UserName.UserName = Constants.UserAuth.Name;
                    client.ClientCredentials.UserName.Password = Constants.UserAuth.Passwd;
                }

                if (!_config.UseTunnel)
                {
                    client.ClientCredentials.ClientCertificate.SetCertificate(
                        StoreLocation.CurrentUser,
                        StoreName.My,
                        X509FindType.FindByThumbprint,
                        base._config.CertificateThumbprint);
                }

                var responce = client.getState(new getStateRequest1 {
                    RequestHeader   = RequestHelper.Create <RequestHeader>(_config.OrgPPAGUID, _config.Role),
                    getStateRequest = new getStateRequest {
                        MessageGUID = ack.MessageGUID
                    }
                });

                if (responce.getStateResult.RequestState == 3)
                {
                    result = responce.getStateResult;
                    return(true);
                }

                result = null;
                return(false);
            }
        }