私は最初のACA Webサービスへのコールバックを成功させることができました。私は、ステータスを取得することは簡単にできると思っていました。私が間違っていることをボ・オ・オー!"WSセキュリティヘッダーがメッセージにありません。" ACAGetTransmitterBulkRequestStatusを呼び出すとき
ステータスサービスに同じ設定を使用しましたが、サブミットの場合と同じように、「WS Security header is invalid error!」というメッセージが表示されます。何を与える?!?!署名生成コードは、私が提出に使用していたものと同じです!もし誰かが何らかの光を当てることができれば、ここで間違っているのは分かりますか? 私は次のタグがデジタル署名されるべきであることを、認識しています(と私はそれらを署名しない):ここでは
- ACABusinessHeader
- ACABulkRequestTransmitterStatusDetailRequest
- セキュリティタイムスタンプ
は私の要求です:
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:私はますます確信しています。私たちの証明書とステータスサービスでは、何かが終わってしまっています。領収書IDを適切な証明書にマップできないようです。少なくとも、XMLには構造的に何も問題はないと私はそれらを送信しています。しかし、彼らは実際の問題を特定することができませんでした。 IRSは私が最近したより詳細な調査のために、彼らに最近私の要求をメールで頼んだ。今は何が起きるか待つだろう。
どのようにXMLを生成していますか? SignedXmlクラスによって主に生成されるSecurity要素を除いて、手作業でSOAPエンベロープとヘッダーを手動で作成することで、私のソリューションがIRSで動作するようになっただけです。 – Bon
@Bon応答していただきありがとうございます!SignedXmlクラスを使用して手動で署名を生成しています。私はその部門で同じボートにいると思います。私がなぜ提出サービスのために働いているのがステータス1のために働いていないのか理解できないのですか?私はあなたが両方のサービスのために働いているのを見ました、違いは何ですか、それはステータスサービスを作ったのですか? – fatherOfWine
私の唯一の違いは、pdfで指定されているさまざまな要素に署名していたと思います。 – Bon