Re: Timbrado con Diverza
Publicado: Mar Sep 26, 2017 1:39 pm
Adjunta el json request en un archivo para poder examinarlo y comentar si acaso tienes un error ... en el codigo que pones no es facil de verlo ya formado
Código: Seleccionar todo
Dim request = TryCast(System.Net.WebRequest.Create("http://192.237.238.229:4006/api/v1/documents/stamp
"), System.Net.HttpWebRequest)
request.Method = "POST"
request.ContentType = "application/json"
Using writer = New System.IO.StreamWriter(request.GetRequestStream())
Dim byteArray As Byte() = System.Text.Encoding.UTF8.GetBytes("{
\""credentials\"": {
\""id\"": \""1\"",
\""token\"": \""$2b$12$o03C1kz6fRNalss2yvYE7efSOs1IDsh5l04RmCMnooesl8KoYmh7S\""
},
\""issuer\"": {
\""rfc\"": \""AAA010101AAA\""
},
\""receiver\"": {
\""emails\"": [
{
\""email\"": \""user@domain.com\"",
\""format\"": \""xml+pdf\"",
\""template\"": \""letter\""
}
]
},
\""document\"": {
\""ref-id\"": \""1234567\"",
\""certificate-number\"": \""20001000000100005867\"",
\""section\"": \""all\"",
\""format\"": \""pdf\"",
\""template\"": \""letter\"",
\""type\"": \""application/vnd.diverza.cfdi_3.2+xml\"",
\""content\"": \""PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxSZW1pc2lvbiB4bWxucz0iaHR0cDovL3d3dy5idXpvbmZpc2NhbC5jb20vbnMveHNkL2JmL3JlbWlzaW9uLzUyIg0KICAgIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiDQogICAgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vd3d3LmJ1em9uZmlzY2FsLmNvbS9ucy94c2QvYmYvcmVtaXNpb24vNTIiDQogICAgdmVyc2lvbj0iNS4yIj4NCiAgICA8SW5mb0Jhc2ljYSByZmNFbWlzb3I9IkFBQTAxMDEwMUFBQSIgcmZjUmVjZXB0b3I9IkRJQTAzMTAwMkxaMiINCiAgICAgICAgYWxpYXNTdWN1cnNhbD0iIiAgYXNpZ25hRm9saW89ImZhbHNlIiBmb2xpbz0iMTIzNDUiDQogICAgICAgIHNlcmllPSJBIj48L0luZm9CYXNpY2E+DQogICAgPEluZm9BZGljaW9uYWwgZm9ybWFEZVBhZ289IlBBR08gRU4gVU5BIFNPTEEgRVhISUJJQ0lPTiIgc3ViVG90YWw9IjEwMDAwLjAwIiB0b3RhbD0iNzYwMC4wMCINCiAgICAgICAgbWV0b2RvRGVQYWdvPSJUUkFOU0ZFUkVOQ0lBIiB0aXBvRGVDb21wcm9iYW50ZT0iZWdyZXNvIiBsdWdhckV4cGVkaWNpb249Ik1vbnRlcnJleSwgTkwiDQogICAgICAgIG51bUN0YVBhZ289IjEyMTIiIGRlc2N1ZW50bz0iMjAwLjAwIi8+DQogICAgPEVtaXNvcj4NCiAgICAgICAgPFJlZ2ltZW5GaXNjYWwgUmVnaW1lbj0iUGVyc29uYSBNb3JhbCIvPg0KICAgIDwvRW1pc29yPg0KICAgIDxEb21pY2lsaW9GaXNjYWwgY2FsbGU9IkRvY3RvciBKb3PDqSBNYXLDrWEgQ29zcyIgbXVuaWNpcGlvPSJNb250ZXJyZXkiIGVzdGFkbz0iTnVldm8gTGXDs24iIHBhaXM9Ik1leGljbyINCiAgICAgICAgY29kaWdvUG9zdGFsPSI2NDAwMCIgbm9FeHRlcmlvcj0iNzMxIi8+DQogICAgPFJlY2VwdG9yIG5vbWJyZT0iRGl2ZXJ6YSBJbmZvcm1hY2nDs24geSBBbsOhbGlzaXMsIFMuQS5QLkkuIGRlIEMuVi4iLz4NCiAgICA8RG9taWNpbGlvUmVjZXB0b3IgcGFpcz0iTWV4aWNvIiBjYWxsZT0iRG9jdG9yIEpvc8OpIE1hcsOtYSBDb3NzIiBub0V4dGVyaW9yPSI3MzEiICBub0ludGVyaW9yPSJwaXNvIDkiIGNvZGlnb1Bvc3RhbD0iNjQwMDAiDQogICAgICAgIG11bmljaXBpbz0iTW9udGVycnJleSIvPg0KICAgIDxDb25jZXB0b3M+DQogICAgICAgIDxDb25jZXB0byBjYW50aWRhZD0iMTAwIiB1bmlkYWQ9IlBaQSIgbm9JZGVudGlmaWNhY2lvbj0iQUJDMDAwMTAyMDMwIiBkZXNjcmlwY2lvbj0iUHJvZHVjdG8gZGUgcHJ1ZWJhIg0KICAgICAgICAgICAgdmFsb3JVbml0YXJpbz0iMTAuMDAiIGltcG9ydGU9IjEwMDAuMDAiPiA8L0NvbmNlcHRvPg0KICAgIDwvQ29uY2VwdG9zPg0KICAgIDxJbXB1ZXN0b3MgdG90YWxJbXB1ZXN0b3NUcmFzbGFkYWRvcz0iMTYwLjAwIj4NCiAgICAgICAgPFRyYXNsYWRvcz4NCiAgICAgICAgICAgIDxUcmFzbGFkbyBpbXB1ZXN0bz0iSVZBIiB0YXNhPSIxNi4wMCIgaW1wb3J0ZT0iMTYwLjAwIi8+DQogICAgICAgIDwvVHJhc2xhZG9zPg0KICAgIDwvSW1wdWVzdG9zPg0KICAgIDxBZGRlbmRhPg0KICAgICAgICA8YmZhMjpBZGRlbmRhQnV6b25GaXNjYWwgdmVyc2lvbj0iMi4wIg0KICAgICAgICAgICAgeG1sbnM6YmZhMj0iaHR0cDovL3d3dy5idXpvbmZpc2NhbC5jb20vbnMvYWRkZW5kYS9iZi8yIj4NCiAgICAgICAgICAgIDxiZmEyOlRpcG9Eb2N1bWVudG8gZGVzY3JpcGNpb249IkZhY3R1cmEiIG5vbWJyZUNvcnRvPSJGQUMiLz4NCiAgICAgICAgICAgIDxiZmEyOkNGRCBmZWNoYUVudmlvPSIyMDE1LTEwLTA5VDA5OjQxOjA0Ig0KICAgICAgICAgICAgICAgIHRvdGFsQ29uTGV0cmE9Ik1pbCBjaWVudG8gc2VzZW50YSBwZXNvcyBjb24gMDAvMTAwIE0uTi4iIHRpcG9Nb25lZGE9Ik1YTiIvPg0KICAgICAgICAgICAgPGJmYTI6RXh0cmEgYXRyaWJ1dG89IlQqVE9UQUwiIHZhbG9yPSIxMTYwLjAwIi8+DQogICAgICAgICAgICA8YmZhMjpFeHRyYSBhdHJpYnV0bz0ibnVtZXJvVGlja2V0IiB2YWxvcj0iMDAwMDBDMDAwMTAwMDAwOTg3NjUiLz4NCiAgICAgICAgICAgIDxiZmEyOkV4dHJhIGF0cmlidXRvPSJ0aWVuZGEiIHZhbG9yPSJDZW50cm8iLz4NCiAgICAgICAgPC9iZmEyOkFkZGVuZGFCdXpvbkZpc2NhbD4NCiAgICA8L0FkZGVuZGE+DQo8L1JlbWlzaW9uPg==\""
}
}")
request.ContentLength = byteArray.Length
writer.Write(byteArray)
writer.Close()
End Using
Dim responseContent As String
Using response = TryCast(request.GetResponse(), System.Net.HttpWebResponse)
Using reader = New System.IO.StreamReader(response.GetResponseStream())
responseContent = reader.ReadToEnd()
End Using
End Using
Código: Seleccionar todo
{
"credentials": {
"id": "3935",
"token": "ABCD1234"
},
"issuer": {"rfc": "AAA010101AAA"},
"receiver": {"emails": [{
"email": "nombre@micliente.com",
"format": "xml+pdf",
"template": "letter"
}]},
"document": {
"ref-id": "EDV2017040300003",
"certificate-number": "30001000000300023708",
"section": "all",
"format": "xml",
"template": "letter",
"type": "application/vnd.diverza.cfdi_3.3+xml",
"content": "77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48Y2ZkaTpDb21wcm9iYW50ZSB4bWxuczpjZmRpPSJodHRwOi8vd3d3LnNhdC5nb2IubXgvY2ZkLzMiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3d3dy5zYXQuZ29iLm14L2NmZC8zIGh0dHA6Ly93d3cuc2F0LmdvYi5teC9zaXRpb19pbnRlcm5ldC9jZmQvMy9jZmR2MzMueHNkIiBWZXJzaW9uPSIzLjMiIFNlcmllPSJBIiBGb2xpbz0iNjE3MiIgRmVjaGE9IjIwMTctMDktMjZUMTE6NDM6MjkiIFNlbGxvPSIiIEZvcm1hUGFnbz0iMDEiIE5vQ2VydGlmaWNhZG89IjMwMDAxMDAwMDAwMzAwMDIzNzA4IiBDZXJ0aWZpY2Fkbz0iTUlJRitUQ0NBK0dnQXdJQkFnSVVNekF3TURFd01EQXdNREF6TURBd01qTTNNRGd3RFFZSktvWklodmNOQVFFTEJRQXdnZ0ZtTVNBd0hnWURWUVFEREJkQkxrTXVJRElnWkdVZ2NISjFaV0poY3lnME1EazJLVEV2TUMwR0ExVUVDZ3dtVTJWeWRtbGphVzhnWkdVZ1FXUnRhVzVwYzNSeVlXTnB3N051SUZSeWFXSjFkR0Z5YVdFeE9EQTJCZ05WQkFzTUwwRmtiV2x1YVhOMGNtRmphY096YmlCa1pTQlRaV2QxY21sa1lXUWdaR1VnYkdFZ1NXNW1iM0p0WVdOcHc3TnVNU2t3SndZSktvWklodmNOQVFrQkZocGhjMmx6Ym1WMFFIQnlkV1ZpWVhNdWMyRjBMbWR2WWk1dGVERW1NQ1FHQTFVRUNRd2RRWFl1SUVocFpHRnNaMjhnTnpjc0lFTnZiQzRnUjNWbGNuSmxjbTh4RGpBTUJnTlZCQkVNQlRBMk16QXdNUXN3Q1FZRFZRUUdFd0pOV0RFWk1CY0dBMVVFQ0F3UVJHbHpkSEpwZEc4Z1JtVmtaWEpoYkRFU01CQUdBMVVFQnd3SlEyOTViMkZqdzZGdU1SVXdFd1lEVlFRdEV3eFRRVlE1TnpBM01ERk9Uak14SVRBZkJna3Foa2lHOXcwQkNRSU1FbEpsYzNCdmJuTmhZbXhsT2lCQlEwUk5RVEFlRncweE56QTFNVGd3TXpVME5UWmFGdzB5TVRBMU1UZ3dNelUwTlRaYU1JSGxNU2t3SndZRFZRUURFeUJCUTBORlRTQlRSVkpXU1VOSlQxTWdSVTFRVWtWVFFWSkpRVXhGVXlCVFF6RXBNQ2NHQTFVRUtSTWdRVU5EUlUwZ1UwVlNWa2xEU1U5VElFVk5VRkpGVTBGU1NVRk1SVk1nVTBNeEtUQW5CZ05WQkFvVElFRkRRMFZOSUZORlVsWkpRMGxQVXlCRlRWQlNSVk5CVWtsQlRFVlRJRk5ETVNVd0l3WURWUVF0RXh4QlFVRXdNVEF4TURGQlFVRWdMeUJJUlVkVU56WXhNREF6TkZNeU1SNHdIQVlEVlFRRkV4VWdMeUJJUlVkVU56WXhNREF6VFVSR1VrNU9NRGt4R3pBWkJnTlZCQXNVRWtOVFJEQXhYMEZCUVRBeE1ERXdNVUZCUVRDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSmRVY3NISUVJZ3dpdnZBYW50R25ZVklPMys3eVRkRDF0a0tvcGJMK3RLU2pSRm8xRXJQZEdKeFAzZ3hUNU8rQUNJRFFYTitIUzl1TVdEWW5hVVJhbFNJRjlDT0ZDZGgvT0gyUG4rVW1rTjRjdWxyMkRhbkt6dFZJTzhpZFhNNmM5YUhuNWhPbzdoRHhYTUMzdU91R1YzRlM0T2JreFRWKzlOc3ZPQVYybE1lMjdTSHJTQjBEaHVMdXJVYlp3WG0rL3I0ZHR6M2IydUxnQmMrRGl5OTVQRytNSXU3b05LTTg5YUJOR2NqVEp3KzlrK1d6SmlQZDNacFFnSWVkWUJEKzhRV3hsWUNneGhudGEzazl5bGdYS1lYQ1lrMGswcWF1dkJKMWpTUlZmNUJqaklVYk9zdGFRcDU5bmtnSGg0NWM5Z253SlJWNjE4TlcwZk1lRHp1S1IwQ0F3RUFBYU1kTUJzd0RBWURWUjBUQVFIL0JBSXdBREFMQmdOVkhROEVCQU1DQnNBd0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dJQkFCS2owRENOTDFsaDQ0eStPY1dGclQyaWNuS0Y3V3lTT1ZpaHgwb1IrSFByV0tCTVh4bzlLdHJvZG5CMXRnSXg4ZitYanF5cGhoYncranVEU2VEcmI5OVBoQzQrRTZKZVhPa2RRY0p0NTBLeW9kbDlVUnBDVldOV2pVYjNGL3lwYThvVGNmZi9lTWZ0UVpUN01RMUxxaHQreG0zUWhWb3hUSUFTY2UwampzbkJUR0QySlE0dVQzb0NlbThibW9NWFYvZms5YUozdjArWklMNDJNcFk0UE9HVWEvaVRhYXdrbEtSQUwxWGo5SWRJUjA2Uks2OFJTNnhyR2s2andiRFRFS3hKcG1aM1NQTHRsc21QVVRPMWtyYVRQSW85RkNtVS96WmtXR3BkOFpFQUFGdytaZkkrYmRYQmZ2ZER3YU0yaU1HVFFaVFRFZ1U1S0tUSXZrQW5IbzlPNDVTcVNKd3FWOU5MZlBBeENvNWVSUjJPR2liZDlqaEhlODF6VXNwNUdkRTFtWmlTcUpVODJIM2N1NkJpRStEM1liWmVabmpyTlN4QmdLVElmOHcrS05ZUE00YVdudVVNbDBtTGd0T3hUVVhpOU1LblVjY3EzR1pMQTdieDdabjIxMXlQUnFFalNBcXliVU1WSU9obzZhcXprZmMzV0xaNkxuR1UraHlIdVpVZlB3Ym5DbGI3b0ZGejFQbHZHT3BORHNVYjBxUDQyUUNHQmlUVXNlR3VnQXpxT1A2RVlwVlBDNzNnRm91cm1kQlFnZmF5YUV2aTN4ak5hbkZrUGxXMVhFWU5yWUpCNHlOanBoRnJ2V3dUWTg2dkwybzhnWk4wVXRtYzVmbm9CVGZNOXIyelZLbUVpNkZVZUoxaWFEYVZOdjQ3dGU5aVMxYWk0VjR2Qlk4ciIgQ29uZGljaW9uZXNEZVBhZ289IjE1IiBTdWJUb3RhbD0iNS4wMCIgTW9uZWRhPSJNWE4iIFRpcG9DYW1iaW89IjEiIFRvdGFsPSI1LjgwIiBUaXBvRGVDb21wcm9iYW50ZT0iSSIgTWV0b2RvUGFnbz0iUFVFIiBMdWdhckV4cGVkaWNpb249Ijg0MDAwIj48Y2ZkaTpFbWlzb3IgUmZjPSJBQUEwMTAxMDFBQUEiIE5vbWJyZT0iQ0lOREVNRVggU0EgREUgQ1YiIFJlZ2ltZW5GaXNjYWw9IjYwMSIgLz48Y2ZkaTpSZWNlcHRvciBSZmM9IlhBWFgwMTAxMDEwMDAiIE5vbWJyZT0iQ2xpZW50ZSBnZW5lcmFsIiBVc29DRkRJPSJQMDEiIC8+PGNmZGk6Q29uY2VwdG9zPjxjZmRpOkNvbmNlcHRvIENsYXZlUHJvZFNlcnY9IjAxMDEwMTAxIiBOb0lkZW50aWZpY2FjaW9uPSJOb0lkIiBDYW50aWRhZD0iMS4wMCIgQ2xhdmVVbmlkYWQ9IkVBIiBVbmlkYWQ9IlBpZXphIiBEZXNjcmlwY2lvbj0iUHJvZHVjdG8gR2VuZXJpY2EiIFZhbG9yVW5pdGFyaW89IjEuMDAiIEltcG9ydGU9IjEuMDAiPjxjZmRpOkltcHVlc3Rvcz48Y2ZkaTpUcmFzbGFkb3M+PGNmZGk6VHJhc2xhZG8gQmFzZT0iMS4wMCIgSW1wdWVzdG89IjAwMiIgVGlwb0ZhY3Rvcj0iVGFzYSIgVGFzYU9DdW90YT0iMC4xNjAwMDAiIEltcG9ydGU9IjAuMTYiIC8+PC9jZmRpOlRyYXNsYWRvcz48L2NmZGk6SW1wdWVzdG9zPjwvY2ZkaTpDb25jZXB0bz48Y2ZkaTpDb25jZXB0byBDbGF2ZVByb2RTZXJ2PSIwMTAxMDEwMSIgTm9JZGVudGlmaWNhY2lvbj0iTm9JZDIiIENhbnRpZGFkPSIyLjAwIiBDbGF2ZVVuaWRhZD0iRUEiIFVuaWRhZD0iUGllemEiIERlc2NyaXBjaW9uPSJQcm9kdWN0byBHZW5lcmljYVBydWViYWRvcyIgVmFsb3JVbml0YXJpbz0iMi4wMCIgSW1wb3J0ZT0iNC4wMCI+PGNmZGk6SW1wdWVzdG9zPjxjZmRpOlRyYXNsYWRvcz48Y2ZkaTpUcmFzbGFkbyBCYXNlPSI0LjAwIiBJbXB1ZXN0bz0iMDAyIiBUaXBvRmFjdG9yPSJUYXNhIiBUYXNhT0N1b3RhPSIwLjE2MDAwMCIgSW1wb3J0ZT0iMC42NCIgLz48L2NmZGk6VHJhc2xhZG9zPjwvY2ZkaTpJbXB1ZXN0b3M+PC9jZmRpOkNvbmNlcHRvPjwvY2ZkaTpDb25jZXB0b3M+PGNmZGk6SW1wdWVzdG9zIFRvdGFsSW1wdWVzdG9zVHJhc2xhZGFkb3M9IjAuODAiPjxjZmRpOlRyYXNsYWRvcz48Y2ZkaTpUcmFzbGFkbyBJbXB1ZXN0bz0iMDAyIiBUaXBvRmFjdG9yPSJUYXNhIiBUYXNhT0N1b3RhPSIwLjE2MDAwMCIgSW1wb3J0ZT0iMC44MCIgLz48L2NmZGk6VHJhc2xhZG9zPjwvY2ZkaTpJbXB1ZXN0b3M+PC9jZmRpOkNvbXByb2JhbnRlPg=="
}
}
Código: Seleccionar todo
Dim xmlTimbrado As String = ""
Dim b64 As String = Getb64XMLString(xml, oFun)
Dim request = TryCast(System.Net.WebRequest.Create("https://serviciosdemo.diverza.com/api/v1/documents/stamp"), System.Net.HttpWebRequest)
request.Method = "POST"
request.ContentType = "application/json"
Dim jsonstr = "{
""credentials"": {
""id"": """ & id & """,
""token"": """ & token & """
},
""issuer"": {""rfc"": """ & rfcemisor & """},
""receiver"": {""emails"": [{
""email"": ""email@gmail.com"",
""format"": ""xml+pdf"",
""template"": ""letter""
}]},
""document"": {
""ref-id"": """ & seriefolio & """,
""certificate-number"": """ & numcert & """,
""section"": ""all"",
""format"": ""xml"",
""template"": ""letter"",
""type"": ""application/vnd.diverza.cfdi_3.3+xml"",
""content"": """ & b64 & """
}
}"
Dim byteArray As Byte() = System.Text.Encoding.UTF8.GetBytes(jsonstr)
request.ContentLength = byteArray.Length
Using writer = request.GetRequestStream()
'request.ContentLength = byteArray.Length
writer.Write(byteArray, 0, byteArray.Length)
writer.Close()
End Using
Dim responseContent As String
Using response = TryCast(request.GetResponse(), System.Net.HttpWebResponse)
Using reader = New System.IO.StreamReader(response.GetResponseStream())
responseContent = reader.ReadToEnd()
xmlTimbrado = (responseContent.Substring(responseContent.IndexOf("""content"":")).Replace("""content"":", "")).Trim()
xmlTimbrado = xmlTimbrado.Replace("""", "")
xmlTimbrado = xmlTimbrado.Replace("}", "")
'DECODIFICA EL XML TIMBRADO
byteArray = Convert.FromBase64String(xmlTimbrado)
xmlTimbrado = Encoding.UTF8.GetString(byteArray)
End Using
End Using
Return xmlTimbrado
Código: Seleccionar todo
Private Function getSelloDigital(PEM As String, tmpCad As String, tmpSHA As String) As String
Try
sError = ""
Dim oFun As New funciones
CreateOpenSSLPath(oFun)
Dim oProcessOpenSSL As New Process()
oProcessOpenSSL.StartInfo.FileName = GetOpenSSLPath(oFun)
oProcessOpenSSL.StartInfo.Arguments = "dgst -sha256 -sign " + PEM + " -out " + tmpSHA + " " + tmpCad
oProcessOpenSSL.StartInfo.UseShellExecute = False
oProcessOpenSSL.StartInfo.ErrorDialog = False
oProcessOpenSSL.StartInfo.RedirectStandardOutput = True
oProcessOpenSSL.StartInfo.RedirectStandardError = True
oProcessOpenSSL.StartInfo.CreateNoWindow = True
oProcessOpenSSL.Start()
' sError = "dgst -sha256 -sign " + PEM + " -out " + tmpSHA + " " + tmpCad
oProcessOpenSSL.WaitForExit()
System.Threading.Thread.Sleep(1000)
Dim tmpBASE64 As String = tmpCad.Replace(".txt", "-base64.txt")
oProcessOpenSSL.StartInfo.Arguments = "base64 -in " + tmpSHA + " -out " + tmpBASE64
oProcessOpenSSL.StartInfo.UseShellExecute = False
oProcessOpenSSL.StartInfo.ErrorDialog = False
oProcessOpenSSL.StartInfo.RedirectStandardOutput = True
oProcessOpenSSL.StartInfo.RedirectStandardError = True
oProcessOpenSSL.StartInfo.CreateNoWindow = True
oProcessOpenSSL.Start()
sError = oProcessOpenSSL.StandardError.ReadToEnd()
oProcessOpenSSL.WaitForExit()
If sError = "" Then
'RECUPERACION ENSAMBLADO
Dim utF8Encoding As UTF8Encoding = New UTF8Encoding(False)
Dim str2 As String = oFun.cleanString(File.ReadAllText(tmpBASE64, CType(utF8Encoding, Encoding))).Replace(" ", "")
If (File.Exists(tmpBASE64)) Then
File.Delete(tmpBASE64)
End If
File.WriteAllText(tmpBASE64, str2, CType(utF8Encoding, Encoding))
'FIN RECUPERACION ENSAMBLADO
Dim sello As String = System.IO.File.ReadAllText(tmpBASE64)
If (File.Exists(tmpBASE64)) Then
File.Delete(tmpBASE64)
End If
Return sello
Else
Return ""
End If
Catch ex As Exception
sError = ex.Message
Return ""
End Try
End Function
Ese dato no es el sello, ese es el HASH, que es un paso antes del sellokokyno escribió:Y este es el sello que genero:
20510bb7e73453a2c7c839eccdd81ce051c916ab63c54ef4011d7406ad1383e6