<p>联邦快递的IE站点在另一个站点的IFrame中返回网页。你不能用Iframe跨站点获取信息。因此,请执行以下操作。
可以将以下xml传输到:
<a href="https://ws.fedex.com:443/web-services" rel="nofollow">https://ws.fedex.com:443/web-services</a></p>
<pre><code><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v10="http://fedex.com/ws/track/v10">
<soapenv:Header/>
<soapenv:Body>
<v10:TrackRequest>
<v10:WebAuthenticationDetail>
<v10:ParentCredential>
<v10:Key>productionkey</v10:Key>
<v10:Password>productionpassword</v10:Password>
</v10:ParentCredential>
<v10:UserCredential>
<v10:Key>productionkey</v10:Key>
<v10:Password>productionpassword</v10:Password>
</v10:UserCredential>
</v10:WebAuthenticationDetail>
<v10:ClientDetail>
<v10:AccountNumber>accountnumber</v10:AccountNumber>
<v10:MeterNumber>meternumber</v10:MeterNumber>
<v10:IntegratorId/>
<v10:Localization>
<v10:LanguageCode>EN</v10:LanguageCode>
<v10:LocaleCode>us</v10:LocaleCode>
</v10:Localization>
</v10:ClientDetail>
<v10:TransactionDetail>
<v10:CustomerTransactionId>Ground Track By Number</v10:CustomerTransactionId>
<v10:Localization>
<v10:LanguageCode>EN</v10:LanguageCode>
<v10:LocaleCode>us</v10:LocaleCode>
</v10:Localization>
</v10:TransactionDetail>
<v10:Version>
<v10:ServiceId>trck</v10:ServiceId>
<v10:Major>10</v10:Major>
<v10:Intermediate>0</v10:Intermediate>
<v10:Minor>0</v10:Minor>
</v10:Version>
<v10:SelectionDetails>
<v10:CarrierCode>FDXG</v10:CarrierCode>
<v10:PackageIdentifier>
<v10:Type>TRACKING_NUMBER_OR_DOORTAG</v10:Type>
<v10:Value>$WAYBILL$</v10:Value>
</v10:PackageIdentifier>
</v10:SelectionDetails>
<v10:ProcessingOptions>INCLUDE_DETAILED_SCANS</v10:ProcessingOptions>
</v10:TrackRequest>
</soapenv:Body>
</soapenv:Envelope>
Use the following VBA Code to transmit and it will return the tracking info:
Public Function ReturnXMLResponse(ByVal XML_Method As Variant, _
ByVal XML_Track_URL As Variant, _
ByVal XML_Request As Variant, _
Optional ByVal WaybillNum As String = "", _
Optional ByVal CarrierName As String = "", _
Optional ByVal TotalWaybills As Long = 0, _
Optional ByVal XML_Chunks As Long = 1) As String
' Passed expressions to this function have to be Variant, as some arguments
' may be passed as Null which would result in a type conversion failure.
' If True Then Exit Function
ReturnXMLResponse = "Test" ' default if not supported or not tracked by request
If UCase(XML_Track_URL) <> "NOT SUPPORTED" And UCase(XML_Track_URL) <> "NOT TRACKED BY REQUEST" Then
If (WaybillNum <> "") And (CarrierName <> "") Then
TrackingCounter = TrackingCounter + (1 / XML_Chunks)
SBText = "Tracking: " & CarrierName & ":" & WaybillNum
If TotalWaybills <> 0 Then SBText = SBText & " (" & CLng(TrackingCounter) & "/" & TotalWaybills & ") [" & (TrackingCounter / TotalWaybills) * 100 & "%]"
SBText = SBText & "."
Application.SysCmd acSysCmdSetStatus, SBText
End If
Set XMLHTTP = CreateObject("Microsoft.xmlhttp")
If (WaybillNum <> "") And (CarrierName <> "") Then
SBText = SBText & "."
Application.SysCmd acSysCmdSetStatus, SBText
End If
XMLHTTP.Open XML_Method, XML_Track_URL, False
If (WaybillNum <> "") And (CarrierName <> "") Then
SBText = SBText & "."
Application.SysCmd acSysCmdSetStatus, SBText
End If
XMLHTTP.Send XML_Request ' okay to send blank string, if not needed
If (WaybillNum <> "") And (CarrierName <> "") Then
SBText = SBText & "."
Application.SysCmd acSysCmdSetStatus, SBText
End If
ReturnXMLResponse = Cstr(XMLHttp.ResponseText)
End If
If ReturnXMLResponse = "" Then ReturnXMLResponse = "Nothing"
End Function
Basically XMLHTTP.Send XML_Request
'XMLHTTP.Send = Sending the XML_Request which is the soap envelope
above. It 'then returns the valid XML.
</code></pre>