Closed ArinaArs closed 2 years ago
вопрос решился , отправлять извещение о получении подтверждения уже не надо .
И оставлю для будущих поколений пример формирования и отправки титула покупателя входящего УПД
var криптография = new WinApiCrypt(); var диадокСервис = new DiadocApi(_КлючРазработчика, _АдресСервиса, криптография); var пользователь = диадокСервис.GetMyUser(_Токен);
var _титулПокупателя = new Utd820.UniversalTransferDocumentBuyerTitle()
{
DocumentCreator = _нашЯщик.Organization.FullName
, OperationContent = "Принято без претензий"
, AcceptanceDate = DateTime.Today.ToShortDateString()
, Signers = new object[]
{
new DataXml.ExtendedSignerDetails_BuyerTitle820()
{
SignerOrganizationName = _нашЯщик.Organization.FullName,
Inn = _нашЯщик.Organization.Inn,
FirstName = пользователь.FirstName,
LastName = пользователь.LastName,
Position = _Должность,
SignerType = DataXml.ExtendedSignerDetailsBaseSignerType.LegalEntity,
SignerPowers = DataXml.ExtendedSignerDetails_BuyerTitle820SignerPowers.MadeAndSignOperation,
SignerStatus = DataXml.ExtendedSignerDetails_BuyerTitle820SignerStatus.BuyerEmployee
}
}
};
var файлДляОтправки = ДиадокСервис.GenerateTitleXml(
_Токен
, _нашЯщик.BoxId
, _документ.TypeNamedId
, _документ.Function
, _документ.Version
, 1 /*titleIndex – числовой идентификатор титула документа для покупателя = 1*/
, _титулПокупателя.SerializeToXml()
, false
, null
, сообщение.MessageId
, родительскийЭлемент.EntityId
);
var титулПокупателяДляОтправки = new RecipientTitleAttachment()
{
ParentEntityId = родительскийЭлемент.EntityId
, NeedReceipt = false
, SignedContent = new SignedContent()
{
Content = файлДляОтправки.Content
, Signature = Криптография.Sign(файлДляОтправки.Content, _БайтыСертификата)
}
};
var путьОтправки = new MessagePatchToPost()
{
BoxId = _нашЯщик.BoxId,
MessageId = сообщение.MessageId
};
путьОтправки.AddUniversalTransferDocumentBuyerTitle(титулПокупателяДляОтправки);
ДиадокСервис.PostMessagePatch(_Токен, путьОтправки);
День добрый! есть входящий документ УПД с функцией СЧФДОП ид сообщения MessageId = 'cab411e5-9951-44e2-b6ea-942f9f2c2b1a' есть Entities с типом InvoiceConfirmation на родительский entity (ParentEntityId = 'f1a8f33a-a952-4161-9777-ffae42751a04' , EntityId= '37c1c6d2-6cbe-4a97-99dc-49609b949caa' )
Пытаемся на него сформировать и отправить извещение о получении подтверждения
var извещение = ДиадокСервис.GenerateReceiptXml(_Токен, _BoxId, 'cab411e5-9951-44e2-b6ea-942f9f2c2b1a', '37c1c6d2-6cbe-4a97-99dc-49609b949caa', new Signer() { SignerCertificate = _сертификат SignerDetails = _подпись });
получаем ошибку BaseUrl=https://diadoc-api.kontur.ru:443, PathAndQuery=/GenerateReceiptXml?boxId=xxxxx@diadoc.ru&messageId=cab411e5-9951-44e2-b6ea-942f9f2c2b1a&attachmentId=37c1c6d2-6cbe-4a97-99dc-49609b949caa, AdditionalMessage=ErrorCode: DocumentService.InvalidDocumentType (Http.Conflict), StatusCode=Conflict, DiadocErrorCode: DocumentService.InvalidDocumentType
Удаленный сервер возвратил ошибку: (409) Конфликт.
Что не так ?
Если можно пример отправки титула покупателя входящего УПД