Cordial Saludo,
Estoy desarrollando en lenguaje c# el consumo del web services para acuse de recibo en la DIAN resolucion 085
Necesito ayuda de como debo enviar el parametro contenfile al metodo SendEventUpdateStatus del Web Services WcfDianCustomerServicesClient
La comunicacion con el web services esta bien porque si me funcionó el metodo GetStatus
El Error que me vota la DIAN es:
MIMEType del archivo inválido (text/xml)
Comparto codigo fuente
var apiUrl = "https://vpfe.dian.gov.co/WcfDianCustomerServices.svc";
var endpointAddress = new System.ServiceModel.EndpointAddress(new Uri(apiUrl));
var securityElement = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
securityElement.AllowInsecureTransport = false;
securityElement.EnableUnsecuredResponse = true;
securityElement.IncludeTimestamp = false;
const SslProtocols _Tls12 = (SslProtocols)0x00000C00;
const SecurityProtocolType Tls12 = (SecurityProtocolType)_Tls12;
ServicePointManager.SecurityProtocol = Tls12;
byte[] rawCertificateData = File.ReadAllBytes(StrCertifi);
X509Certificate2 certificate = new X509Certificate2();
certificate.Import(rawCertificateData, StrClave, X509KeyStorageFlags.DefaultKeySet);
var certContentBase64 = Convert.ToBase64String(certificate.Export(X509ContentType.Cert));
WcfDianCustomerServicesClient client = new WcfDianCustomerServicesClient("WSHttpBinding_IWcfDianCustomerServices", endpointAddress);
client.ClientCredentials.UserName.UserName = StrSoftwareId;
client.ClientCredentials.UserName.Password = StrPassword;
client.ClientCredentials.ClientCertificate.Certificate = certificate;
String strXML = @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""no""?>
<ApplicationResponse xmlns=""urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2"" xmlns:cac=""urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"" xmlns:cbc=""urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"" xmlns:ds=""http://www.w3.org/2000/09/xmldsig#"" xmlns:ext=""urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"" xmlns:sts=""dian:gov:co:facturaelectronica:Structures-2-1"">
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent>
</ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:UBLVersionID>UBL 2.1</cbc:UBLVersionID>
<cbc:CustomizationID>1</cbc:CustomizationID>
<cbc:ProfileID>DIAN 2.1</cbc:ProfileID>
<cbc:ProfileExecutionID>2</cbc:ProfileExecutionID>
<cbc:ID>0000000000025</cbc:ID>
<cbc:UUID schemeID=""2"" schemeName=""CUDE-SHA384"">" + strcufe + @"</cbc:UUID>
<cbc:IssueDate>"+ strfechaasunto + @"</cbc:IssueDate>
<cbc:IssueTime>"+ strhoraasunto + @"</cbc:IssueTime>
<cac:SenderParty>
<cac:PartyTaxScheme>
<cbc:RegistrationName>xxxxxxx</cbc:RegistrationName>
<cbc:CompanyID schemeAgencyID=""195"" schemeAgencyName=""CO, DIAN(Direccion de Impuestos y Aduanas Nacionales)"" schemeID=""6"" schemeName=""31"">12345</cbc:CompanyID>
<cac:TaxScheme>
<cbc:ID>01</cbc:ID>
<cbc:Name>IVA</cbc:Name>
</cac:TaxScheme>
</cac:PartyTaxScheme>
</cac:SenderParty>
</ApplicationResponse>
";
XmlDocument doc = new XmlDocument();
doc.LoadXml(strXML);
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
// Save the document to a file and auto-indent the output.
XmlWriter writer = XmlWriter.Create(@"C:\Temp\data.xml", settings);
doc.Save(writer);
writer.Close();
try
{
byte[] contentfile = File.ReadAllBytes(@"C:\Temp\data.xml");
client.Open();
DianResponse resp = client.SendEventUpdateStatus(contentfile);
//DianResponse resp = client.GetStatus(strcufe);
MessageBox.Show(resp.StatusMessage);
client.Close();
}
catch (Exception Ex)
{
client.Close();
if (Ex.InnerException != null)
{
if (Ex.InnerException.Message != null)
{
MessageBox.Show(Ex.InnerException.Message, "Error del Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else
{
MessageBox.Show(Ex.Message, "Error del Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
else
{
MessageBox.Show(Ex.Message, "Error del Sistema", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}