2016-03-17 3 views
2

Мне трудно найти, что такое ошибка.Delphi HTTPRIO: Ошибка после запроса на мыло с подписанным сертификатом

Я получил это сообщение:

Debugger Exception Notification 
    Project Project9.exe raised exception class ERemotableException with message 'System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.ArgumentNullException: Value cannot be null. 
Parameter name: node 
at System.Xml.XmlNodeReader..ctor(XmlNode node) 
at Serpro.Sped.eFinanceira.WsInternet.WsRecepcao.ReceberLoteEvento(XmlDocument loteEventos) 
--- End of inner exception stack trace ---'. 
Break Continue Help 

после импорта моего WSDL это мое события БТН щелчком.

procedure TForm7.Button1Click(Sender: TObject); 
var 
vWsRecepcaoSoap : WsRecepcaoSoap; 
vXmlData : loteEventos; 
vHTTPRIO : THTTPRIO; 
begin 
vHTTPRIO := THTTPRIO.Create(Nil); 
vHTTPRIO.WSDLLocation := 'http://www1.receita.fazenda.gov.br/sistemas/e-financeira/documentos/doc-download/WsRecepcao.wsdl'; 
vHTTPRIO.Service := 'WsRecepcao'; 
vHTTPRIO.Port := 'WsRecepcaoSoap12'; 
vHTTPRIO.HTTPWebNode.OnBeforePost := HTTPRIO1HTTPWebNode1BeforePost; 
//vHTTPRIO.OnBeforeExecute := HTTPRIO1BeforeExecute; 
vWsRecepcaoSoap := vHTTPRIO as WsRecepcaoSoap; 
vXmlData := TXMLData.Create; 
vXmlData.LoadFromXML(
//'<?xml version="1.0" encoding="UTF-8"?> '+ 
'<eFinanceira xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" '+ 
'xmlns="http://www.eFinanceira.gov.br/schemas/envioLoteEventos/v1_0_1">'+ 
' <loteEventos>'+ 
' <evento id="ID0">'+ 
' <eFinanceira xmlns="http://www.eFinanceira.gov.br/schemas/evtAberturaeFinanceira/v1_0_0">'+ 
' <evtCadDeclarante id="ID00000001762">'+ 
' <ideEvento>'+ 
' <indRetificacao>1</indRetificacao>'+ 
' <tpAmb>2</tpAmb>'+ 
' <aplicEmi>2</aplicEmi>'+ 
' <verAplic>00000000000000000707</verAplic>'+ 
' </ideEvento>'+ 
' <ideDeclarante>'+ 
' <cnpjDeclarante>02475222000196</cnpjDeclarante>'+ 
' </ideDeclarante>'+ 
' <infoCadastro>'+ 
' <nome>CECM SERV ESTAT ADM DIRETA EST E SANTO</nome>'+ 
' <enderecoLivre>AV JOAO BATISTA PARRA N 673 EDF ENSEADA TOWER LJ 1 PRAIA DO SUA</enderecoLivre>'+ 
' <municipio>3205309</municipio>'+ 
' <UF>ES</UF>'+ 
' <Pais>BR</Pais>'+ 
' <paisResidencia>BR</paisResidencia>'+ 
' </infoCadastro>'+ 
' </evtCadDeclarante>'+ 
' <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">'+ 
' <SignedInfo>'+ 
' <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>'+ 
' <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>'+ 
' <Reference URI="#ID00000001762">'+ 
' <Transforms>'+ 
' <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>'+ 
' <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>'+ 
' </Transforms>'+ 
' <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>'+ 
' <DigestValue>G8kSjLVludtkatDuCm2rLszM7D4=</DigestValue>'+ 
' </Reference>'+ 
' </SignedInfo>'+ 
' <SignatureValue>f7OmvLKjuuRQiX+6tgqBYxB5zBFgxjXMyXOqZkWtLhgW2lP/ZzM7xrnt9HZFBSetIhJNGuPhKysZzf4hZClW1YSEfi2WECb3CNzBCfjzeOA2fEJ/FJXdYdDsAvtzjTbt'+ 
'E+MqrJW/u9sGNJHJDTtVfdjPwt3Y9NUJJ0SADvDtXPiow71rcpAeg3fQD3IIFlPLyz0WbGiUyzDcsl3pb7L7AYilj5Pm5utV0COq8A0jwnMylKolGHScXgJaPW3U9qHw9KDeaGP0NfgEYyYTk/C8T'+ 
'NSZXb5AKj2sFr9rfLRuTOqEJHjKvlYmWsGUCTwEVkkNakTYbuNFYsXB++nVVaoD7Q==</SignatureValue><KeyInfo><X509Data><X509Certificate>MIIHQjCCBSqgAwIBAgIEAMtJKTANB'+ 
'gkqhkiG9w0BAQsFADCBiTELMAkGA1UEBhMCQlIxEzARBgNVBAoTCklDUC1CcmFzaWwxNjA0BgNVBAsTLVNlY3JldGFyaWEgZGEgUmVjZWl0YSBGZWRlcmFsIGRvIEJyYXNpbCAtIFJGQjEtMCsGA1'+ 
'UEAxMkQXV0b3JpZGFkZSBDZXJ0aWZpY2Fkb3JhIFNFUlBST1JGQnY0MB4XDTE1MDgxNDE2NTg0MVoXDTE4MDgxMzE2NTg0MVowgbYxCzAJBgNVBAYTAkJSMRMwEQYDVQQKEwpJQ1AtQnJhc2lsMTY'+ 
'wNAYDVQQLEy1TZWNyZXRhcmlhIGRhIFJlY2VpdGEgRmVkZXJhbCBkbyBCcmFzaWwgLSBSRkIxEzARBgNVBAsTCkFSQ09SUkVJT1MxFTATBgNVBAsTDFJGQiBlLUNQRiBBMzEuMCwGA1UEAxMlQ0FS'+ 
'TE9TIFJPR0VSSU8gRE9TIFNBTlRPUzowMjQ1MjIwNzcxMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKpkYV/6tAjFMopRahCMbKuaoygH+NjBmIR7p5JYm2rdw0c1Vft4i2cZjSNs/'+ 
'cVJsadZgxiw3YFYqIyyg+dMA78qTWpidVr4n2BOCwh7xmqjZ/t+Cf2ay3/HjeYdjsNRMRtkGjoLGQqPXVdKM//TSQHB2Sc+oWIcWmscvYJoN19SsgCaWk073mltthdo+zOeuFSGYsUKj7YXOLbTfm'+ 
'BJpslQRVM8GQdgv1ufSGKFccVRESkb5RsWjM2MvvzZNtDKPFpICW1Q3Elo3EeP6D9iYNPBMPh4dRcya8e2DnNSDjA24o9xStoN+SCZwwU6Dfq1lAoBMZxrvGCjnKLicLUuckMCAwEAAaOCAoEwggJ'+ 
'9MB8GA1UdIwQYMBaAFDAKLAy4Nyvg9toC/oCCZ5aYVBk7MFsGA1UdIARUMFIwUAYGYEwBAgMEMEYwRAYIKwYBBQUHAgEWOGh0dHA6Ly9yZXBvc2l0b3Jpby5zZXJwcm8uZ292LmJyL2RvY3MvZHBj'+ 
'YWNzZXJwcm9yZmIucGRmMIHRBgNVHR8EgckwgcYwPKA6oDiGNmh0dHA6Ly9yZXBvc2l0b3Jpby5zZXJwcm8uZ292LmJyL2xjci9hY3NlcnByb3JmYnY0LmNybDA+oDygOoY4aHR0cDovL2NlcnRpZ'+ 
'mljYWRvczIuc2VycHJvLmdvdi5ici9sY3IvYWNzZXJwcm9yZmJ2NC5jcmwwRqBEoEKGQGh0dHA6Ly9yZXBvc2l0b3Jpby5pY3BicmFzaWwuZ292LmJyL2xjci9zZXJwcm8vYWNzZXJwcm9yZmJ2NC'+ 
'5jcmwwVgYIKwYBBQUHAQEESjBIMEYGCCsGAQUFBzAChjpodHRwOi8vcmVwb3NpdG9yaW8uc2VycHJvLmdvdi5ici9jYWRlaWFzL2Fjc2VycHJvcmZidjQucDdiMIGhBgNVHREEgZkwgZagQAYFYEw'+ 
'BAwGgNwQ1MDMxMDE5NzMwMjQ1MjIwNzcxMzExNjUxMTMwNzgxMDAwMDAwNDU3OTc2MDg5REVUUkFORVOgFwYFYEwBAwagDgQMMDExNjUxMTMwNzgxoCcGBWBMAQMFoB4EHDAxNDgxMzEzMTQwNjAw'+ 
'MTAxMTFWSVRPUklBRVOBEHJzQHByb2RhZi5jb20uYnIwDgYDVR0PAQH/BAQDAgXgMB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjANBgkqhkiG9w0BAQsFAAOCAgEAQoQ1UiFiVuklBLM8U'+ 
'lVteQnQNUdAZFoE2BGIsPHJd5nG5lW+RpWadU12EcM10AtFd/eJgfLIR2xU/FEmFhKNok+MA+g+h4RUBHbg8RVvoVSvw3dLGbO9HkaZ3nziwOTKHzq32G0MsQ47g4aoeOt9p9SNZhcUoSXESPgCco'+ 
'uJSLW2H2SYp7bBBB1hDivWqqhwgDXY+kGkleKgjWrE4KdhXQXzD0hj9OubG/huOBUyRaD3kAGF2yTxqUS4vl/oRicpO3NyPa0f3ScGkKtLsAJUAfnfv9p5JUEpVR5sFf7RoGXvv6zDoZnG7QKxuUR'+ 
'L+x5/ZV2k5dmNSkcmyCwKKnguytRA/S/UZ1NJ3+G3M4g+nNMuofMlFLYPtGGLWQWEY9i32wARLjo6fwcD26NxRxVRYkUOmMe8GSc7gmfqNSC/+FMqMV12EJdvgui6gytLVaXfC1oAjXwkb0e3pQT7'+ 
'u0+jZsnfAexAvOCNEfe6Jx9ANOF7KrvOr5Tp33l2lPcGD3PQRMsySUCHb95mu9lZ/lqzEKJjwXJ4z2KCCPQ6Su8FKTgUoYTl2BnTJBBPDw06nLBwqB2EiFWnPr+NF5HEuLDcGTysgoFcll4fPJu3y'+ 
'2OMeq6OGR3xOhK2FEJx9efYZ6KKtGVrR4l6IieDK9joskSRYzU+ZERjvHD8dWm1U9+QXjQ=</X509Certificate></X509Data></KeyInfo></Signature>'+ 
' </eFinanceira>'+ 
' </evento>'+ 
' </loteEventos></eFinanceira>'); 

vXmlData := vWsRecepcaoSoap.ReceberLoteEvento(vXmlData); 
Memo2.text := vXmlData.XMLNode.XML; 

end; 

procedure TForm7.HTTPRIO1HTTPWebNode1BeforePost(const HTTPReqResp: THTTPReqResp; 
Data: Pointer); 
var 
    Store  : IStore; 
    Certs  : ICertificates; 
    Cert   : ICertificate2; 
    CertContext : ICertContext; 
    PCertContext : PCCERT_CONTEXT; 
    V   : OleVariant; 
    vCertsLista  : ICertificates2; 
begin 
    (* 
    thumbprint of the certificate to use. Look at CAPICOM docs to see 
    how to find certs using other Id's 
    *) 
(* 
    thumbprint of the certificate to use. Look at CAPICOM docs to see 
    how to find certs using other Id's 
    *) 
    V := 'BC50E0E8CA750D6F7524EC58B3071E9FCB4C8920'; 

    (* create Certificate store object *) 
    Store := CoStore.Create; 

    (* open the My Store containing certs with private keys *) 
    Store.Open(CAPICOM_CURRENT_USER_STORE, 'MY', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); 

    (* find the certificate with the given thumbprint *) 
    vCertsLista  := Store.Certificates as ICertificates2; 

    Certs := vCertsLista.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, V, False); 

// Certs := Store.Certificates.Find(CAPICOM_CERTIFICATE_FIND_SHA1_HASH, V, False); 


    (* any certificates found? *) 
    if Certs.Count > 0 then 
    begin 
    (* get the certificate context *) 
    Cert := IInterface(Certs.Item[ 1 ]) as ICertificate2; 
    CertContext := Cert as ICertContext; 
    CertContext.Get_CertContext(Integer(PCertContext)); 

    (* set the certificate to use for the SSL connection *) 
    if InternetSetOption(Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT, 
     PCertContext, Sizeof(CERT_CONTEXT)) = False then 
    begin 
     raise Exception.Create('Erro ao configurar certificado para conexão SSL.'); 
    end; 
    end; 

end; 

Возможно, кто-нибудь может мне помочь? Большое спасибо!

запрос:

сервер
<?xml version="1.0"?> 
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
     <SOAP-ENV:Body> 
     <schema xmlns="http://www.w3.org/2001/XMLSchema"> 
      <eFinanceira xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.eFinanceira.gov.br/schemas/envioLoteEventos/v1_0_1"> 
      <loteEventos> 
       <evento id="ID0"> 
       <eFinanceira xmlns="http://www.eFinanceira.gov.br/schemas/evtAberturaeFinanceira/v1_0_0"> 
        <evtCadDeclarante id="ID00000001762"> 
        <ideEvento> 
         <indRetificacao>1</indRetificacao> 
         <tpAmb>2</tpAmb> 
         <aplicEmi>2</aplicEmi> 
         <verAplic>00000000000000000707</verAplic> 
        </ideEvento> 
        <ideDeclarante> 
         <cnpjDeclarante>02475222000196</cnpjDeclarante> 
        </ideDeclarante> 
        <infoCadastro> 
         <nome>CECM SERV ESTAT ADM DIRETA EST E SANTO</nome> 
         <enderecoLivre>AV JOAO BATISTA PARRA N 673 EDF ENSEADA TOWER LJ 1 PRAIA DO SUA</enderecoLivre> 
         <municipio>3205309</municipio> 
         <UF>ES</UF> 
         <Pais>BR</Pais> 
         <paisResidencia>BR</paisResidencia> 
        </infoCadastro> 
        </evtCadDeclarante> 
        <Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> 
        <SignedInfo> 
         <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> 
         <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> 
         <Reference URI="#ID00000001762"> 
         <Transforms> 
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/> 
          <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> 
         </Transforms> 
         <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> 
         <DigestValue>G8kSjLVludtkatDuCm2rLszM7D4=</DigestValue> 
         </Reference> 
        </SignedInfo> 
        <SignatureValue>f7OmvLKjuuRQiX+6tgqBYxB5zBFgxjXMyXOqZkWtLhgW2lP/ZzM7xrnt9HZFBSetIhJNGuPhKysZzf4hZClW1YSEfi2WECb3CNzBCfjzeOA2fEJ/FJXdYdDsAvtzjTbtE+MqrJW/u9sGNJHJDTtVfdjPwt3Y9NUJJ0SADvDtXPiow71rcpAeg3fQD3IIFlPLyz0WbGiUyzDcsl3pb7L7AYilj5Pm5utV0COq8A0jwnMylKolGHScXgJaPW3U9qHw9KDeaGP0NfgEYyYTk/C8TNSZXb5AKj2sFr9rfLRuTOqEJHjKvlYmWsGUCTwEVkkNakTYbuNFYsXB++nVVaoD7Q==</SignatureValue> 
        <KeyInfo> 
         <X509Data> 
         <X509Certificate>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</X509Certificate> 
         </X509Data> 
        </KeyInfo> 
        </Signature> 
       </eFinanceira> 
       </evento> 
      </loteEventos> 
      </eFinanceira> 
     </schema> 
     </SOAP-ENV:Body> 
    </SOAP-ENV:Envelope> 
+0

, который делает строку кода выбросить исключение? – whosrdaddy

+0

он передает событие перед сообщением ... и запрашивает пароль .. на выполнение перед выполнением моего soap xml его тоже ок. VXmlData: = vWsRecepcaoSoap.ReceberLoteEvento (vXmlData); – Marisco

+0

отправил запрос на мыло. – Marisco

ответ

0

В .NET ответил с ошибкой: «Сервер не смог обработать запрос» Таким образом, вы должны связаться с владельцами этой службы

+0

Итак, вы думаете, что каждый из них в порядке с кодировкой и запросом? По электронной почте владельцы ждут ответа. – Marisco

+0

Я пробовал то же самое с C# и получил ошибку с более подробной информацией, и я думаю, что это абсолютно проблема с сервером: System.Web.Services.Protocols.SoapException: сервер не смог обработать запрос. ---> System.NullReferenceException: ссылка на объект не установлена ​​в экземпляр объекта. в Serpro.Sped.eFinanceira.WsInternet.Util.MontaXMLRetorno (XElement xelement) в Serpro.Sped.eFinanceira.WsInternet.WsRecepcao.ReceberLoteEvento (XmlDocument loteEventos) – Marisco

Смежные вопросы