Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Colaboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 07-05-2025
_Io _Io is offline
Miembro
 
Registrado: ene 2024
Posts: 114
Poder: 3
_Io Va por buen camino
Cita:
Empezado por _Io Ver Mensaje
Buenas tardes.

¿Podría poner alguien la cabecera firmada de en envío a Face que funcione bien?

Es para tener una referencia buena, me estoy peleando con las ssb y quiere tener claro lo que tengo que buscar.

Muchas Gracias.
Me respondo, al final lo conseguí.

Esta es una consulta de factura operativa:

Código:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" SOAP-ENV:mustUnderstand="1">
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="">
<wsu:Created>2025-05-07T21:06:20.434Z</wsu:Created>
<wsu:Expires>2025-05-07T21:11:20.434Z</wsu:Expires>
</wsu:Timestamp>
<wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" wsu:Id="CertId-000001">MIIHozCCBougAwIBAgIQeJ9MrQ87SXVlqQbhybS7zTANBgkqhkiG9w0BAQsFADBLMQswCQYDVQQGEwJFUzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRkwFwYDVQQDDBBBQyBGTk1UIFVzdWFyaW9zMB4XDTI0MDExODExMDkyMVoXDTI4MDExODExMDkyMVowgYcxCzAJBgNVBAYTAkVTMRgwFgYDVQQFEw9JRENFUy03NTc4MjE0MVExDzANBgNVBCoMBlJBRkFFTDEcMBoGA1UEBAwTTUFSVElOIE5Jw5FPIE1FRElOQTEvMC0GA1UEAwwmTUFSVElOIE5Jw5FPIE1FRElOQSBSQUZBRUwgLSA3NTc4MjE0MVEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7fGrEVpaFhksE2QA/iVRP0z8bkSPQnunUGHq7ztbN5a1QmTGwzoAP6sk/XHU50SdSTKdrx1Jzg2GVTIXOarMhiWAIJTqKBhUM2V+nv+jLcpqUVRbviyKI5Bf1MeTQjC/g5a1lW/3kJSrfqxmM2TBTIhHPb28mbOINJFXB+4cRWdlFObImpvRqpieOtPOEnHaZt/lE1A5G5H8pv7lKUIQy7KDNDmOg1ftT9p0vzgAkki+hWoqBTcsi2ulbyz6GqEkUrODA1y2+GeyHF8Rz1+Izgkog55LQeUHXLAQ3gF1m/WJBOrzn/tYpCzQq95dj1szbrAWA7yqzr727cSIIjR2LAgMBAAGjggREMIIEQDByBgNVHREEazBppGcwZTEYMBYGCSsGAQQBrGYBBAwJNzU3ODIxNDFRMRUwEwYJKwYBBAGsZgEDDAZNRURJTkExGzAZBgkrBgEEAaxmAQIMDE1BUlRJTiBOScORTzEVMBMGCSsGAQQBrGYBAQwGUkFGQUVMMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgXgMCoGA1UdJQQjMCEGCCsGAQUFBwMCBgorBgEEAYI3CgMMBgkqhkiG9y8BAQUwHQYDVR0OBBYEFEkibha90cfz+eOAImtbRdjTqWacMB8GA1UdIwQYMBaAFLHUT8QjefpEBQnG6znP6DWwuCBkMIGCBggrBgEFBQcBAQR2MHQwPQYIKwYBBQUHMAGGMWh0dHA6Ly9vY3NwdXN1LmNlcnQuZm5tdC5lcy9vY3NwdXN1L09jc3BSZXNwb25kZXIwMwYIKwYBBQUHMAKGJ2h0dHA6Ly93d3cuY2VydC5mbm10LmVzL2NlcnRzL0FDVVNVLmNydDCCARUGA1UdIASCAQwwggEIMIH6BgorBgEEAaxmAwoBMIHrMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzCBvQYIKwYBBQUHAgIwgbAMga1DZXJ0aWZpY2FkbyBjdWFsaWZpY2FkbyBkZSBmaXJtYSBlbGVjdHLDs25pY2EuIFN1amV0byBhIGxhcyBjb25kaWNpb25lcyBkZSB1c28gZXhwdWVzdGFzIGVuIGxhIERQQyBkZSBsYSBGTk1ULVJDTSBjb24gTklGOiBRMjgyNjAwNC1KIChDL0pvcmdlIEp1YW4gMTA2LTI4MDA5LU1hZHJpZC1Fc3Bhw7FhKTAJBgcEAIvsQAEAMIG6BggrBgEFBQcBAwSBrTCBqjAIBgYEAI5GAQEwCwYGBACORgEDAgEPMBMGBgQAjkYBBjAJBgcEAI5GAQYBMHwGBgQAjkYBBTByMDcWMWh0dHBzOi8vd3d3LmNlcnQuZm5tdC5lcy9wZHMvUERTQUNVc3Vhcmlvc19lcy5wZGYTAmVzMDcWMWh0dHBzOi8vd3d3LmNlcnQuZm5tdC5lcy9wZHMvUERTQUNVc3Vhcmlvc19lbi5wZGYTAmVuMIHkBgNVHR8EgdwwgdkwgdaggdOggdCGgZ5sZGFwOi8vbGRhcHVzdS5jZXJ0LmZubXQuZXMvY249Q1JMVTY2MCxjbj1BQyUyMEZOTVQlMjBVc3VhcmlvcyxvdT1DRVJFUyxvPUZOTVQtUkNNLGM9RVM/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdDtiaW5hcnk/YmFzZT9vYmplY3RjbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludIYtaHR0cDovL3d3dy5jZXJ0LmZubXQuZXMvY3Jsc2FjdXN1L0NSTFU2NjAuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA5+WD+8DswpLDEfcXO8aZX+t8t/LY/NrILXviYSsvMQAWgzTdOq7hrWTAuk1F+XuP1Gx5oYahS3cAYpnUuE9MX2iHV/p1lc1asaFHvyrwc0K9KteNITJgVMrboY/N/5GvRmOjuvlNAHXPlG+HK8Yf3HDii0YA+a7amqktWL4TJuMue2vwjClKMqEeQXrRIgHGmqxBWwZBZhREinhA2irwHAOAs8VCjZRCbtZS7oBeFqJ+7lAA34FW1V4zj/VgzFFC84t7DmBI7PNEWS8QoCn6L86OhUl7XKV44/mZ+j9luhRex6AcbtF5uanht3oU+iKO6jUx/nXfcOeCBqJMh5HTR</wsse:BinarySecurityToken>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#id-BodyREF">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"/>
<ds:DigestValue>jsJHpwdckjOO6v9SHSDz4yTCoqzvsaxsrvCVDrVdj8Q=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue> ujhcfQcRD4BZXBFtrz4CnS1aIx6kemlAFVVTnOSVkxM7TEjwwhWHhN61uxfakiPu 0J/CsAJrt2LZ3StR4nGT/YJuZnhHAVW8+D1kD2Yf2bYJLpHdhJnRlQDMWAXy+md5 jPWRoRT+uXrw/nSF/NKm3PrJ4NSytIcGY5UNGBk0JGFfPb+Hzed9geIXrWyzNg/D znJJ9lyUjhWB5kcK9S8Wk0LtlSQxwa5yMX1n+Y/BCcRtI1ooItBDLKNYxkdaPMup XogVxomDoamqSSVddJWH9Doiht4/Y8fY5NPAMsqjA6Pa58uyV181cI2XZ/PZvOxF 8EtIyGiA1ELASkGUtraFcw== </ds:SignatureValue>
<ds:KeyInfo Id="KeyId-000002">
<wsse:SecurityTokenReference xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STRId-000003">
<wsse:Reference URI="#CertId-000001" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body xmlns:NS1="https://webservice.face.gob.es" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" wsu:Id="id-BodyREF">
<NS1:consultarFactura>
<numeroRegistro xsi:type="xsd:string">REGAGE25e000xxxxxxxx</numeroRegistro>
</NS1:consultarFactura>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Y este es el código:

Código:
function c_face_soap_sig.FirmaSoap_int(var aStream :TStream):boolean;
var
  FSOAPSigner: TsbxSOAPSigner;
  Utils :TsbxUtils;
begin

  fUltimoError:='';

  try

    // Se crea el componente utils contiene
    // muchas utilidades, sería conveiente"
    // mirar unit TsbxUtils"
    Utils:=TsbxUtils.Create(nil);

    FSOAPSigner := TsbxSOAPSigner.Create(nil);
    try

      // Se carga certificado firma
      cargaCertificado(FSOAPSigner);

      // Se toma los datos generados del evento
      // OnBefore del componente htpPrio
      FSOAPSigner.InputBytes := StreamToBytes(aStream);

      // Configuración básica
      FSOAPSigner.Config('XMLFormatting=auto');

      // Configuración necesaria en ws-security
      FSOAPSigner.Config('SecurityHeaderMustUnderstand=1');

      FSOAPSigner.Config('BinarySecurityTokenId=CertId-000001');
      FSOAPSigner.Config('KeyInfoID=KeyId-000002');
      FSOAPSigner.Config('SecurityTokenReferenceID=STRId-000003');

      // Marca de tiempo, muestra la hora local
      // referenciada al huso horio "Z", no sé
      // si esta bien, españa esta en huso "A"
      // y en veranos huso "B"
      FSOAPSigner.Config('WSUTimestampCreated=' + Utils.DateToString(Now()));
      FSOAPSigner.Config('WSUTimestampExpires=' + Utils.DateToString(IncMinute(Now(), 5)));
      FSOAPSigner.Config('WSUTimestampCreatedFormat=YYYY-MM-DDThh:mm:ss.sssTZD');
      FSOAPSigner.Config('WSUTimestampExpiresFormat=YYYY-MM-DDThh:mm:ss.sssTZD');


      // Creamos la referencia al Body del mensaje,
      // asignandole un URI, se asigna false a AutoGenerateId
      FSOAPSigner.AddBodyReference('id-BodyREF',false);

      // Asignamos los datos necesarios a la referencia
      // del elemento a ser firmado "Body"
      FSOAPSigner.References[0].HashAlgorithm:='SHA256';
      FSOAPSigner.References[0].CanonicalizationMethod:=cxcmExclCanon;

      // Asignamos la configuración de la firma

      // sstWSSSignature =>  (WS-Security, WSS) signature
      // SHA1 => /xmldsig#sha1
      // cxcmExclCanon => /xml-exc-c14n#
      // aslGeneric => this value applicable to XAdES
      //               signature only  andcorresponds to
      //               XML-DSIG signature
      FSOAPSigner.NewSignature.SignatureType := sstWSSSignature;
      FSOAPSigner.NewSignature.HashAlgorithm := 'SHA1';
      FSOAPSigner.NewSignature.CanonicalizationMethod:=cxcmExclCanon;
      FSOAPSigner.NewSignature.Level:=aslGeneric;

      // Certificado en BinarySecurityToken
      FSOAPSigner.EmbedCertificateMethod := cwecInBinarySecurityToken;

      // Siempre se crea SecurityHeader
      FSOAPSigner.SecurityHeaderIndex:=-1;

      FSOAPSigner.Sign();

      BytesToStream(FSOAPSigner.OutputBytes,aStream);

    except

      on e:exception do fUltimoError:=e.ToString;

    end;


  finally

    FreeAndNil(Utils);
    FreeAndNil(FSOAPSigner);

  end;

  result:=fUltimoError='';

end;
Se utilizan los componentes sbb.

Saludos.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Facturas Electronicas Argentina Chaja Varios 3 10-07-2015 19:15:05
Agregar Adendas a Facturas electronicas mexico reypcs Varios 0 20-01-2011 16:26:10
Tabla de Facturas vs Detalles de Facturas magnu9 Conexión con bases de datos 9 27-07-2007 17:27:37
Comunicaciones electronicas EDI Toni Conexión con bases de datos 0 18-04-2006 13:06:34
Campos calculados, facturas y detalles de facturas. Letty Conexión con bases de datos 7 07-11-2003 11:19:44


La franja horaria es GMT +2. Ahora son las 15:56:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi