IRS-A2A“邮件格式不正确”(TPE1105-uniqueTransmissionID)

时间:2018-12-26 17:01:28

标签: c# wcf soap-client irs

我正在使用WCF通过其WSDL为IRS集成A2A通道。我能够通过任何与代码相关的错误来发送请求,但目前从IRS收到以下错误:

<faultstring>The message was not formatted properly and/or cannot be interpreted. Please review the XML standards outlined in Section 3 of Publication 5258 (...), correct any issues, and try again.</faultstring>
<detail>
    <errorcode>TPE1105</errorcode>
    <uniqueTransmissionID/>
</detail>

我假设基于响应中的 <uniqueTransmissionID/> 附加节点,它与UTID有关。我已经无数次地查看了UTID和Soap Envelope示例的格式,并且无法一辈子找出可能不合适的地方。我在previous answer中尝试了FatherOfWine的一个小建议,即将BusinessHeader移至清单上方,但它返回了相同的错误。

我已经用Soap Envelope添加了完整的请求,在请求过程中空格似乎被剥夺了,但是我重新格式化了来自Fiddler的格式。

POST [AATS URL] HTTP/1.1
Content-Type: multipart/related; type="application/xop+xml";start="<rootpart>";start-info="text/xml";boundary="--023e657d-66f5-4e92-8e6e-c223338c205a"
SOAPAction: "BulkRequestTransmitter"
Host: la.www4.irs.gov
Content-Length: 15820
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive


----023e657d-66f5-4e92-8e6e-c223338c205a
Content-Type: application/xop+xml; type="text/xml"; charset=UTF-8
Content-Transfer-Encoding: 8bit
Content-Id:<rootpart>

<soapenv:Envelope xmlns:oas1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:urn="urn:us:gov:treasury:irs:ext:aca:air:ty18" 
    xmlns:urn1="urn:us:gov:treasury:irs:common" 
    xmlns:urn2="urn:us:gov:treasury:irs:msg:acabusinessheader" 
    xmlns:urn3="urn:us:gov:treasury:irs:msg:acasecurityheader" 
    xmlns:urn4="urn:us:gov:treasury:irs:msg:irsacabulkrequesttransmitter">
    <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
         <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" 
            xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <Signature Id="SIG-E508633998DD41B6AE062D27D0AC9A48" 
                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-BAC31544F1954B5F8C8441167B91A388">
                        <Transforms>
                            <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                                <InclusiveNamespaces PrefixList="wsse wsa oas1 soapenv urn urn1 urn2 urn3 urn4" 
                                    xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" />
                            </Transform>
                        </Transforms>
                        <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
                        <DigestValue>[VALUE]</DigestValue>
                    </Reference>
                    <Reference URI="#id-870747663BAB4D6FB43FFAD2034013F1">
                        <Transforms>
                            <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                                <InclusiveNamespaces PrefixList="wsa oas1 soapenv urn1 urn2 urn3 urn4" 
                                    xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" />
                            </Transform>
                        </Transforms>
                        <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
                        <DigestValue>[VALUE]</DigestValue>
                    </Reference>
                    <Reference URI="#id-1A336736A6134B16831D45A0C8785D10">
                        <Transforms>
                            <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                                <InclusiveNamespaces PrefixList="wsa oas1 soapenv urn urn1 urn3 urn4" 
                                    xmlns="http://www.w3.org/2001/10/xml-exc-c14n#" />
                            </Transform>
                        </Transforms>
                        <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
                        <DigestValue>[VALUE]</DigestValue>
                    </Reference>
                </SignedInfo>
                <SignatureValue>[VALUE]</SignatureValue>
                <KeyInfo Id="KI-42CB9363E8BE47F2B3E0CD8A743C2D7C">
                    <wsse:SecurityTokenReference wsu:Id="STR-9EE1B09DD6794A64B00B496CC9DC3804">
                        <wsse: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">[KEY]</wsse:KeyIdentifier>
                    </wsse:SecurityTokenReference>
                </KeyInfo>
            </Signature>
            <wsu:Timestamp wsu:Id="TS-BAC31544F1954B5F8C8441167B91A388">
                <wsu:Created>2018-12-27T17:42:39.593Z</wsu:Created>
                <wsu:Expires>2018-12-27T17:52:39.593Z</wsu:Expires>
            </wsu:Timestamp>
        </wsse:Security>
        <urn:ACATransmitterManifestReqDtl wsu:Id="id-DB1DDC6A020C433CB71FF38200026E55" 
            xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <urn:PaymentYr>2018</urn:PaymentYr>
            <urn:PriorYearDataInd>0</urn:PriorYearDataInd>
            <urn1:EIN>[EIN]</urn1:EIN>
            <urn:TransmissionTypeCd>O</urn:TransmissionTypeCd>
            <urn:TestFileCd>T</urn:TestFileCd>
            <urn:TransmitterNameGrp>
                <urn:BusinessNameLine1Txt>[Name]</urn:BusinessNameLine1Txt>
            </urn:TransmitterNameGrp>
            <urn:CompanyInformationGrp>
                <urn:CompanyNm>[Name]</urn:CompanyNm>
                <urn:MailingAddressGrp>
                    <urn:USAddressGrp>
                        <urn:AddressLine1Txt>[Address]</urn:AddressLine1Txt>
                        <urn1:CityNm>[City]</urn1:CityNm>
                        <urn:USStateCd>[ST]</urn:USStateCd>
                        <urn1:USZIPCd>[ZIP]</urn1:USZIPCd>
                    </urn:USAddressGrp>
                </urn:MailingAddressGrp>
                <urn:ContactNameGrp>
                    <urn:PersonFirstNm>[FirstName]</urn:PersonFirstNm>
                    <urn:PersonLastNm>[LastName]</urn:PersonLastNm>
                </urn:ContactNameGrp>
                <urn:ContactPhoneNum>[PhoneNumber]</urn:ContactPhoneNum>
            </urn:CompanyInformationGrp>
            <urn:VendorInformationGrp>
                <urn:VendorCd>I</urn:VendorCd>
                <urn:ContactNameGrp>
                    <urn:PersonFirstNm>[FirstName]</urn:PersonFirstNm>
                    <urn:PersonLastNm>[LastName]</urn:PersonLastNm>
                </urn:ContactNameGrp>
                <urn:ContactPhoneNum>[PhoneNumber]</urn:ContactPhoneNum>
            </urn:VendorInformationGrp>
            <urn:TotalPayeeRecordCnt>3</urn:TotalPayeeRecordCnt>
            <urn:TotalPayerRecordCnt>1</urn:TotalPayerRecordCnt>
            <urn:SoftwareId>[SoftwareID]</urn:SoftwareId>
            <urn:FormTypeCd>1094/1095C</urn:FormTypeCd>
            <urn1:BinaryFormatCd>application/xml</urn1:BinaryFormatCd>
            <urn1:ChecksumAugmentationNum>[CheckSum]</urn1:ChecksumAugmentationNum>
            <urn1:AttachmentByteSizeNum>[Bytes]</urn1:AttachmentByteSizeNum>
            <urn:DocumentSystemFileNm>1094C_Request_[TCC]_20181226T161942345Z.xml</urn:DocumentSystemFileNm>
        </urn:ACATransmitterManifestReqDtl>
        <urn2:ACABusinessHeader wsu:Id="id-E71242CFDF04487D9ECA0AC2E1544E90" 
            xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <urn:UniqueTransmissionId>6de74234-d0fd-45b2-ad45-b408fd137201:SYS12:[TCC]::T</urn:UniqueTransmissionId>
            <urn1:Timestamp>2018-12-26T16:19:42Z</urn1:Timestamp>
        </urn2:ACABusinessHeader>
        <urn3:ACASecurityHeader>
            <urn2:UserId>1#######</urn2:UserId>
        </urn3:ACASecurityHeader>
        <wsa:Action>BulkRequestTransmitter</wsa:Action>
    </soapenv:Header>
    <soapenv:Body>
        <urn4:ACABulkRequestTransmitter version="1.0">
            <urn1:BulkExchangeFile>
                <inc:Include href="cid:1094C_Request_[TCC]_20181226T161942345Z.xml" 
                    xmlns:inc="http://www.w3.org/2004/08/xop/include" />
            </urn1:BulkExchangeFile>
        </urn4:ACABulkRequestTransmitter>
    </soapenv:Body>
</soapenv:Envelope>
----023e657d-66f5-4e92-8e6e-c223338c205a
Content-Type: application/xml
Content-Transfer-Encoding: 7bit
Content-Id: <1094C_Request_[TCC]_20181226T161942345Z.xml>
Content-Disposition: attachment; filename="1094C_Request_[TCC]_20181226T161942345Z.xml"

<?xml version="1.0" encoding="utf-8"?>
    <n1:Form109495CTransmittalUpstream xmlns="urn:us:gov:treasury:irs:ext:aca:air:ty18" 
        xmlns:irs="urn:us:gov:treasury:irs:common" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:p3="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xsi:schemaLocation="urn:us:gov:treasury:irs:msg:form1094-1095Ctransmitterupstreammessage IRS-Form1094-1095CTransmitterUpstreamMessage.xsd" 
        xmlns:n1="urn:us:gov:treasury:irs:msg:form1094-1095Ctransmitterupstreammessage">
        [Removed for Space]
    </n1:Form109495CTransmittalUpstream>
----023e657d-66f5-4e92-8e6e-c223338c205a--

更新:我添加了安全标头,并已解决了此特定问题,现在致力于解决WS-Security错误。我还用更改之处更新了信封。

3 个答案:

答案 0 :(得分:2)

随便扔掉它(更多的评论,但是太长了),但是看起来您在示例中缺少这些元素:

<urn4:ACASecurityHeader xmlns:urn4="urn:us:gov:treasury:irs:msg:acasecurityheader" />
<oas:Security xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401- wss-wssecurity-secext-1.0.xsd" /> 

您正在将此前缀用于urn3,据我所知,没有任何元素引用该前缀。不知道是否有任何区别,但是上述to元素确实在给您错误的部分之前。如果您觉得这听起来像是胡说八道,请随时忽略。

答案 1 :(得分:1)

我想补充一点,这是我几年前通过开发此过程中学到的一件事:您发送的请求(无论是状态还是提交的)都必须与其示例相同。

我用来实现此目的的方法是创建单独的XML模板文档(一个用于提交,一个用于状态),其中包含每个请求所需的全部XML。

从高层次上讲,我的应用程序通过使用适当的数据填充WSDL对象来使用它们,然后我用对象中的值替换模板中的XML元素,对XML文档签名,附加表单数据(用于提交) ,然后发送请求。

查看您发布的内容并将其与我之前发送的内容进行比较,我发现了一些区别:

  • 在信封定义中,您有一个属性xmlns:oasl,我没有这个属性。
  • 在您的InclusiveNamespaces元素中,我有PrefixList="wsse wsa soapenv urn urn1 urn2 urn3"。有人告诉我必须要有这个字面值。
  • 您的DigestMethod是sha256,而我的是sha1。我了解两者之间有区别,但这可能会导致您遇到一些问题?
  • 我有一个urn3:ACASecurityHeader元素,其中包含一个urn1:UserId元素,我认为您已经解决了(它在原始帖子中没有更新)

答案 2 :(得分:0)

这是我当前尝试发送的信封,导致返回#include <bits/stdc++.h> using namespace std; int main() { int t;//No.of test cases cin>>t; while(t--) { string quote;//the input from user string found="not";//word to be found string temp=""; int not_found=0; cin.ignore(); getline(cin,quote); //Splitting the given line into words and store in a vector vector<string> words; istringstream iss(quote); copy(istream_iterator<string>(iss), istream_iterator<string>(), back_inserter(words)); //Scan for "not" and if found break from for loop for(int i=0;i<words.size();i++) { temp=words[i]; transform(temp.begin(),temp.end(),temp.begin(),::tolower); if(temp==found) { cout<<"Real Fancy"<<endl; not_found=1; break; } } if(not_found==0) cout<<"regularly fancy"<<endl; } return 0; } WS安全标题错误。

以下信封XML是TY2018传输的工作信封。信息已被删除。

TPE1122