2

我们正在尝试使用他们的 A2A 渠道向 IRS 政府网站提交 ACA 表格。我们能够使用 X509 和 SHA1 形成 XML 和所需的加密。

在向 IRS 网站发送 XML 时,我们收到错误,The WS Security Header in the message is invalid. Please review the transmission instructions outlined in Section 5 of the AIR Submission Composition and Reference Guide located at https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Information-Return-AIR-Program, correct any issues, and try again.错误代码是 -TPE1122

这是我们尝试从 SoapUI 发布的示例 XML 部分

. . . 1094/1095C 应用程序/xml 843C9A557FC3ABF06EF26C5A4A69E19C 2426 Form1094C_Request_TCC_20160225T2003478641Z.xml

</urn:ACATransmitterManifestReqDtl>
<urn2:ACABusinessHeader oas:Id="ABH_110">
  <urn:UniqueTransmissionId>01242fde-536a-4879-b4db-932af7be668e:SYS12:TCC::T</urn:UniqueTransmissionId>
  <urn1:Timestamp>2016-02-25T17:31:16Z</urn1:Timestamp>
</urn2:ACABusinessHeader>
<oas1:Security>
  <xd:Signature>
    <xd:SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <xd:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
      <xd:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
      <xd:Reference URI="#tag1">
        <xd:Transforms>
          <xd:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
        </xd:Transforms>
        <xd:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <xd:DigestValue>j2bX9e90ETVru5w3Q4k0/yOvss4=</DigestValue>
      </xd:Reference>
    </xd:SignedInfo>
    <xd:SignatureValue xmlns="http://www.w3.org/2000/09/xmldsig#">signature_Value</xd:SignatureValue>
    <xd:KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
      <xd:X509Data>
        <xd:X509SubjectName>subjectName</xd:X509SubjectName>
        <xd:X509Certificate>certificate details</xd:X509Certificate>
      </xd:X509Data>
    </xd:KeyInfo>
  </xd:Signature>
   <oas:Timestamp oas:Id="TS_110">
    <!--Optional:-->
    <oas:Created oas:Id="?">2016-02-25T19:40:33.900Z</oas:Created>
    <!--Optional:-->
    <oas:Expires oas:Id="?">2016-02-30T19:50:33.900Z</oas:Expires>
    <!--You have a CHOICE of the next 1 items at this level-->
    <!--You may enter ANY elements at this point-->
  </oas:Timestamp>
</oas1:Security>
<urn3:ACASecurityHeader>
</urn3:ACASecurityHeader></soapenv:Header><soapenv:Body> body elements</soapenv:Body>

你能指导我们这有什么问题吗?

4

2 回答 2

2

首先,并非所有元素都已签名。要签名的元素有: 1. 时间戳 2. 清单 3. 业务标题

签名应按上述顺序。

此外,安全模式的命名空间应该是 wsse,而时间戳的命名空间应该是 wsu。(不合逻辑对吧?但这就是它的工作原理)就像在 irs 指南中一样。其他元素的命名空间别名无关紧要。

您可以尝试soap ui 并查看生成的示例请求。

于 2016-03-01T17:50:48.957 回答
2

因此,我立即想到的一件事是,您的签名中只有一个参考。根据 AIR 提交组成和参考指南,总共应该有 3 个参考。一个引用您的清单,一个用于业务标头,一个用于时间戳。

此外,您的 Reference 标记 URI 引用了 #tag1 ,您发布的内容实际上并未引用 XML 中的任何元素(除非那是我看不到的清单的 ID)。在您的情况下,参考 URI 应该是 #TS_110、#ABH_110 和 #whateverYourManifestIDis。希望这可以帮助!

于 2016-02-26T15:17:21.540 回答