/// <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); }
/// <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); }
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} - Не верный тип аргумента"); } } }
/// <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); }
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); } }