尝试通过 BulkRequestTransmitter Web 服务提交时收到以下错误。就这条消息而言,Composition Guide 的帮助不大,当我将我的 SOAP XML 与 Composition Guide 中的 SOAP 进行比较时,它们似乎是相得益彰的。我希望另一双眼睛能够看到问题所在。
消息格式不正确和/或无法解释。请查看位于https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Information的 AIR 提交组成和参考指南第 3 节中概述的 XML 标准-Return-AIR-Program,更正任何问题,然后重试。
我试过的:
- 尝试在 SOAP 信封中提交带有(和不带有)空格的内容。
- 尝试使用 XML 格式的表单数据 XML 提交。
尝试使用base64string
格式提交的表单数据(与本次提交一样)。ds
为 Signature 元素添加了前缀。使用此 SO 帖子将前缀添加到 Signature 元素。- 根据更新的合成指南 (v4.2) 添加了“Pretty Print”格式的表单数据。
- 复制了撰写指南第10.3节中概述
MIME
的请求的格式。BulkTransmitterService
- 创建了两个解决方案: 1.)手动创建 SOAP 请求所需的 XML 并通过
HttpWebRequest
对象发送;WSDL
2.) 通过导入的项目发送提交请求Service Reference
,使用自定义编码器GZip and Mtom Encoding
并手动创建 SOAP 状态请求所需的 XML(通过发送HttpWebRequest
)。
更新 #1
根据一些新增内容更新了请求。
ds
为 Signature 元素添加了前缀。- 根据更新的合成指南(v4.2:第 5.4.2 节)添加了“Pretty Print”格式的表单数据。
更新 #2
我开始SOAP
在 Visual Studio 的新实例中手动创建 .xml 文件,并根据需要导入架构引用。我在任何类型的应用程序创建之外执行此操作。
在这样做的过程中,我能够在SOAP
我通过我的应用程序创建的程序中找到一些额外的错误(感谢您的智能感知!)。我发现的错误在 Manifest XML 中,因为它们不符合 IRS 模式。
我将在接下来的 24 小时内调查这些内容并进行相应更新。
urn:MailingAddressGrp
应该有一个urn:USAddressGrp
或的孩子urn:ForeignAddressGrp
。然后那个孩子应该包含正确的地址元素。我的代码目前缺少urn:MailingAddressGrp
.urn1:DocumentSystemFileNm
of 的值Form1094C_Request_[TCC]_yyyyMMddThhmmssfffZ.xml
不正确。我还不完全确定它应该是什么。该元素存在与我所拥有urn1:BulkExchangeFile
的元素相关的问题。xop:Include
架构需要 base64Binary 类型。
更新 #2.5
- 更新了我的 XML 生成过程以包含该
USAddressGrp
元素。 - 发现我在几毫秒内多了一个字符(四个而不是三个)。一旦我更正了这一点,并从文件名的开头删除字符串“Form”, 的值
urn1:DocumentSystemFileNm
就能够成功地验证架构。
更新#3
- 根据我所做的更新更新了完整请求。在这一点上,我无法推断出我的请求有什么问题。如果有人看到任何刺眼的东西,请帮忙!
更新#4
根据所做的其他更新更新了完整请求。
ds
根据另一个 SO 用户的反馈,从签名中删除了前缀。该用户已经使这些请求生效,而无需在ds
事后将前缀附加到签名并重新计算签名。SO 用户还确认他的请求正在处理一个
<inc:Include>
被设置为该元素的子元素的<BulkExchangeFile>
元素。- 根据合成指南第 10.3 节中的示例,确认
MIME
标题是正确的。
更新#5
我目前有两种解决方案:一种是手动发送,创建 SOAP 请求所需的 XML 并通过发送
HttpWebRequest
;一种是使用WSDL Service Reference
提交请求,使用下面概述的自定义编码器,并手动创建状态的 SOAP 请求所需的 XML。截至本次更新,解决方案 1 在发出提交请求时给我上面的错误,在发出状态请求时给我下面的错误。但是,在使用解决方案 2 时,两个请求(提交和状态)都会给我以下错误。
我正在调查可能的证书问题,看看他们是否在这些解决方案中取得了任何进展。
更新 #6
我遇到了许多问题,导致我被耽搁了。我不会详细说明细节,但缺点是我们没有在 IRS 系统中注册安全证书,也没有正确安装证书,以便我可以通过X509Store
. 最后,这些事情都完成了,我能够测试从服务器向 IRS 提交数据(与我的本地机器相比,它没有正确的证书)。不幸的是,我仍然收到下面详述的 WS-Security 错误。我已经用我当前发送的内容更新了完整请求。
消息发生错误:消息中的 WS 安全标头无效。请查看位于https://www.irs.gov/for-Tax-Pros/Software-Developers/Information-Returns/Affordable-Care-Act-Information的 AIR 提交组成和参考指南第 5 节中概述的传输说明-Return-AIR-Program,更正任何问题,然后重试。
MIME 标头中的所有换行符都是原样的,我相信换行符是预期的。 FormData 附件是作为 Pretty Print 发送的,而 SOAP Envelope 不是;这篇文章中的 SOAP 信封经过格式化以提高可读性。
更新#7:
感谢用户:jstill 和fatherOfWine 以及他们在下面发布的内容,并感谢 Bon 对这个项目的早期帮助。我已经打破了一堵墙让提交工作。它现在正在工作。状态请求也有效。但是,我需要弄清楚如何处理它以便从中提取状态和附件(错误数据文件)。
完整请求:
Content-Encoding: gzip
Accept-Encoding: gzip, deflate
Content-Type: multipart/related; type="application/xop+xml"; start="<rootpart>"; start-info="text/xml"; boundary="MIME_boundary"
SOAPAction: BulkRequestTransmitter
MIME-Version: 1.0
Host: la.www4.irs.gov
--MIME_Boundary
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: 8bit
Content-Id: <root_part>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<Security xmlns:h="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Signature Id="SIG-E77c57b78ebc54e989bfc9e43604a04a4" 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="#TS-Eb4799bee41bb4df0a72f52832d283ef7">
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>[TimestampDigestValue]</DigestValue>
</Reference>
<Reference URI="#id-E5f1ed32aab8f4578adeee5debd851a62">
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>[ACABusinessHeaderDigestValue]</DigestValue>
</Reference>
<Reference URI="#id-E4a71164001994d7f865fc7ddb8055350">
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>[ManifestDigestValue]</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>[SignatureValue]</SignatureValue>
<KeyInfo Id="KI-E2309cb142e1a4076a2e71373e6e6b75f">
<SecurityTokenReference d6p1:Id="STR-E2751169ee468470290fe5e8bfb34589e" xmlns:d6p1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">[KeyIdentifier]</KeyIdentifier>
</SecurityTokenReference>
</KeyInfo>
</Signature>
<a:Timestamp a:Id="TS-Eb4799bee41bb4df0a72f52832d283ef7" xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<a:Created>2016-05-18T09:51:05.856Z</a:Created>
<a:Expires>2016-05-18T10:01:05.856Z</a:Expires>
</a:Timestamp>
</Security>
<ACATransmitterManifestReqDtl a:Id="id-E4a71164001994d7f865fc7ddb8055350" xmlns:h="urn:us:gov:treasury:irs:ext:aca:air:7.0" xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns="urn:us:gov:treasury:irs:ext:aca:air:7.0">
<PaymentYr>2015</PaymentYr>
<PriorYearDataInd>0</PriorYearDataInd>
<EIN xmlns="urn:us:gov:treasury:irs:common">000000301</EIN>
<TransmissionTypeCd>O</TransmissionTypeCd>
<TestFileCd>T</TestFileCd>
<OriginalReceiptId />
<TransmitterNameGrp>
<BusinessNameLine1Txt />
</TransmitterNameGrp>
<CompanyInformationGrp>
<CompanyNm>Selitestthree</CompanyNm>
<MailingAddressGrp>
<USAddressGrp>
<AddressLine1Txt>6689 Willow Court</AddressLine1Txt>
<CityNm xmlns="urn:us:gov:treasury:irs:common">Beverly Hills</CityNm>
<USStateCd>CA</USStateCd>
<USZIPCd xmlns="urn:us:gov:treasury:irs:common">90211</USZIPCd>
</USAddressGrp>
</MailingAddressGrp>
<ContactNameGrp>
<PersonFirstNm>Rose</PersonFirstNm>
<PersonLastNm>Lincoln</PersonLastNm>
</ContactNameGrp>
<ContactPhoneNum>5559876543</ContactPhoneNum>
</CompanyInformationGrp>
<VendorInformationGrp>
<VendorCd>I</VendorCd>
<ContactNameGrp>
<PersonFirstNm>ContactFirstName</PersonFirstNm>
<PersonLastNm>ContactLastName</PersonLastNm>
</ContactNameGrp>
<ContactPhoneNum>ContactPhoneNumber</ContactPhoneNum>
</VendorInformationGrp>
<TotalPayeeRecordCnt>3</TotalPayeeRecordCnt>
<TotalPayerRecordCnt>1</TotalPayerRecordCnt>
<SoftwareId>PPACA</SoftwareId>
<FormTypeCd>1094/1095C</FormTypeCd>
<BinaryFormatCd xmlns="urn:us:gov:treasury:irs:common">application/xml</BinaryFormatCd>
<ChecksumAugmentationNum xmlns="urn:us:gov:treasury:irs:common">6b2512ce28f603f76261923d297738e5</ChecksumAugmentationNum>
<AttachmentByteSizeNum xmlns="urn:us:gov:treasury:irs:common">14076</AttachmentByteSizeNum>
<DocumentSystemFileNm>1094C_Request_[TCC]_20160518T215105716Z.xml</DocumentSystemFileNm>
</ACATransmitterManifestReqDtl>
<ACABusinessHeader a:Id="id-E5f1ed32aab8f4578adeee5debd851a62" xmlns:h="urn:us:gov:treasury:irs:msg:acabusinessheader" xmlns:a="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns="urn:us:gov:treasury:irs:msg:acabusinessheader">
<UniqueTransmissionId xmlns="urn:us:gov:treasury:irs:ext:aca:air:7.0">51958882-c653-4eab-8dfb-287ecc555aaa:SYS12:[TCC]::T</UniqueTransmissionId>
<Timestamp xmlns="urn:us:gov:treasury:irs:common">2016-05-18T14:51:05.8568594-07:00</Timestamp>
</ACABusinessHeader>
</s:Header>
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ACABulkRequestTransmitter xmlns="urn:us:gov:treasury:irs:msg:irsacabulkrequesttransmitter" version="1.0">
<BulkExchangeFile xmlns="urn:us:gov:treasury:irs:common">
<inc:Include href="cid:1094C_Request_BB0S4_20160518T215105716Z.xml" xmlns:inc="http://www.w3.org/2004/08/xop/include" />
</BulkExchangeFile>
</ACABulkRequestTransmitter>
</s:Body>
</s:Envelope>
--MIME_Boundary
Content-Type: text/xml; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Id: <1094C_Request_[TCC]_20160518T215105716Z.xml>
Content-Disposition: attachment; name="1094C_Request_[TCC]_20160518T215105716Z.xml"
[PrettyPrintFormDataXml]
--MIME_boundary--