Ich konnte den ersten ACA-Webservice erfolgreich aufrufen und dachte mir, dass es ein Kinderspiel wäre, den Status zu erhalten. Bo-o-oy, wie ich falsch lag!"WS Security Header in der Nachricht erhalten ist ungültig." beim Aufruf von ACAGetTransmitBulkRequestStatus
Ich habe die gleichen Einstellungen für den Status-Service verwendet, wie ich für die Eins ... und ich habe "WS Security Header ist ein ungültiger Fehler!" Was gibt?!?! Der Code für die Signaturgenerierung ist der gleiche wie für die Einreichung! Ich würde mich freuen, wenn jemand in der Lage wäre, etwas Licht zu geben, was hier möglicherweise falsch ist? Ich bin mir bewusst, dass folgende Tags sollten digital signiert werden (und kann ich sie unterzeichnet):
- ACABusinessHeader
- ACABulkRequestTransmitterStatusDetailRequest
- Sicherheit Zeitstempel
Hier ist meine Anfrage:
POST https://la.www4.irs.gov/airp/aca/a2a/1095BC_Status_Request_AATS2016 HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: "RequestSubmissionStatusDetail"
Host: la.www4.irs.gov
Content-Length: 5217
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
<s:Envelope xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#WithComments" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="#_1">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>KBLc15A=</DigestValue>
</Reference>
<Reference URI="#_2">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>dhkLQhzfkc=</DigestValue>
</Reference>
<Reference URI="#TS-ccf5abbbd36940f693d56b21ab489674">
<Transforms>
<Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>O179zVlJnyo=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>REDUCTED</SignatureValue>
<KeyInfo>
<wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:KeyIdentifier 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">-- Base64ed cert ---</wsse:KeyIdentifier>
</wsse:SecurityTokenReference>
</KeyInfo>
</Signature>
<u:Timestamp u:Id="TS-ccf5abbbd36940f693d56b21ab489674">
<u:Created>2016-04-01T15:02:00.505Z</u:Created>
<u:Expires>2016-04-01T15:12:00.506Z</u:Expires>
</u:Timestamp>
</wsse:Security>
<abh:ACABusinessHeader u:Id="_1" xmlns:abh="urn:us:gov:treasury:irs:msg:acabusinessheader">
<UniqueTransmissionId xmlns="urn:us:gov:treasury:irs:ext:aca:air:7.0">REDUCTED</UniqueTransmissionId>
<Timestamp xmlns="urn:us:gov:treasury:irs:common">2016-04-01T11:02:58Z</Timestamp>
</abh:ACABusinessHeader>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ACABulkRequestTransmitterStatusDetailRequest u:Id="_2" version="1.0" xmlns="urn:us:gov:treasury:irs:msg:irstransmitterstatusrequest">
<ACABulkReqTrnsmtStsReqGrpDtl xmlns="urn:us:gov:treasury:irs:ext:aca:air:7.0">
<ReceiptId xmlns="urn:us:gov:treasury:irs:common">Receit Id</ReceiptId>
</ACABulkReqTrnsmtStsReqGrpDtl>
</ACABulkRequestTransmitterStatusDetailRequest>
</s:Body>
UPDATE1: Ich bin mehr und mehr davon überzeugt, dass mit unserem Zertifikats- und Status-Service etwas am Ende ist. Es sieht so aus, als könnten sie die Empfangs-ID nicht dem richtigen Zertifikat zuordnen. Zumindest stimmten sie überein, dass strukturell nichts falsch mit dem XML ist, das ich ihnen geschickt habe. Aber sie konnten das eigentliche Problem nicht identifizieren. IRS bat mich, ihnen meine Anfrage in der E-Mail erneut zur weiteren Untersuchung vorzulegen, was ich tat. Jetzt wird warten und c was passieren wird.
Wie generieren Sie die XML? Ich konnte meine Lösung nur mit dem IRS arbeiten lassen, indem ich meinen SOAP-Umschlag und die Header manuell manuell erstellte, außer dass das Security-Element größtenteils von der SignedXml-Klasse generiert wurde. – Bon
@Bon Vielen Dank für die Antwort! Ich manuell Signatur mit SignedXml Klasse erstellen. Ich denke, in dieser Abteilung sind wir im selben Boot. Was ich nicht verstehe, warum das, was für submit-Dienst funktioniert, nicht für Status eins funktioniert? Ich sah, dass Sie es für beide Dienste funktionierten, was war der Unterschied, dass der Statusdienst funktioniert? – fatherOfWine
Ich denke, der einzige Unterschied für mich war die Unterzeichnung der verschiedenen Elemente wie in ihrem pdf angegeben. – Bon