FedEx 网络集成错误代码 9004

FedEx web Integration ERROR CODE 9004

我正在尝试将 FedEx 的跟踪服务集成到我的网络应用程序中,但我一直收到此错误..

Severity: FAILURE
Source: prxy
Code: 9004
Message: Remote EJB method: track not called. Unable to create the remote bean. Exception: javax.naming.NamingException: unable to find primary representative [Root exception is javax.naming.NamingException: unable to find primary representative]. Cause: javax.naming.NamingException: unable to find primary representative [Root exception is javax.naming.NamingException: unable to find primary representative]

请求

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-      ENV="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:ns1="http://fedex.com/ws/track/v10"><SOAP-ENV:Body><ns1:TrackRequest> <ns1:WebAuthenticationDetail><ns1:ParentCredential><ns1:Key>#########</ns1:Key><ns1:Password>###########</ns1:Password></ns1:ParentCredential><ns1:UserCredential><ns1:Key>#############</ns1:Key><ns1:Password>###########</ns1:Password></ns1:UserCredential></ns1:WebAuthenticationDetail><ns1:ClientDetail><ns1:AccountNumber>#########</ns1:AccountNumber><ns1:MeterNumber>###########</ns1:MeterNumber></ns1:ClientDetail><ns1:TransactionDetail><ns1:CustomerTransactionId>*** Track  using PHP ***</ns1:CustomerTransactionId></ns1:TransactionDetail><ns1:Version><ns1:ServiceId>trck</ns1:ServiceId><ns1:Major>10</ns1:Major><ns1:Intermediate>0</ns1:Intermediate><ns1:Minor>0</ns1:Minor></ns1:Version><ns1:SelectionDetails><ns1:PackageIdentifier> <ns1:Type>TRACKING_NUMBER_OR_DOORTAG</ns1:Type><ns1:Value>449044304137821</ns1:Value></ns1:PackageIdentifier><ns1:ShipmentAccountNumber>########</ns1:ShipmentAccountNumber> </ns1:SelectionDetails></ns1:TrackRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>

回应

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><SOAP-ENV:Body><TrackReply xmlns="http://fedex.com/ws/track/v10"><HighestSeverity>FAILURE</HighestSeverity><Notifications><Severity>FAILURE</Severity><Source>prxy</Source><Code>9004</Code><Message>Remote EJB method: track not called. Unable to create the remote bean. Exception: javax.naming.NamingException: unable to find primary representative [Root exception is javax.naming.NamingException: unable to find primary representative]. Cause: javax.naming.NamingException: unable to find primary representative [Root exception is javax.naming.NamingException: unable to find primary representative]</Message></Notifications></TrackReply></SOAP-ENV:Body></SOAP-ENV:Envelope>

我正在使用 Laravel 框架,此 Fedex 集成使用了三个文件,即 TrackService_v10.wsdl,其中包含 XML 数据、TrackWebServiceClient。php5其中包含发送请求的 php 函数和 fedex-common.php5,其中还包含 php 函数,其中包含对 post.

的输入

我试过在 Internet 和 FedEx 上的开发者和资源中心到处寻找,但我真的无法让它工作。我也不明白这个 SOAP 请求。另外,FedEx 说他们没有程序员来帮我解决这个问题。有人可以帮忙吗?提前致谢。

我一直遇到完全相同的问题。在我的头在桌子上敲了几个小时之后,我遇到了这个 post - 。它属于 WSDL 文件的 v5(当前为 10),但基本上您需要从第 2296 行的 URL 中删除 "beta"。

<service name="TrackService">
    <port name="TrackServicePort" binding="ns:TrackServiceSoapBinding">
      <s1:address location="https://wsbeta.fedex.com:443/web-services/track"/>
    </port>
</service>

应该是

<service name="TrackService">
    <port name="TrackServicePort" binding="ns:TrackServiceSoapBinding">
      <s1:address location="https://ws.fedex.com:443/web-services/track"/>
    </port>
</service>

一切都会(应该)神奇地开始工作。希望这对你和我一样有帮助!

删除 beta 似乎不再是好的解决方案。

我已经联系了 Fedex 支持,当您设置无效 "ParentCredentials" 时,问题实际上就出现了。

在我的例子中,我只需要使用 "UserCredential",如果在 Fedex 提供的 (Java) 示例中为空,"ParentCredentials" 设置为 "XXX"。