usa - API de seguimiento para Fedex y UPS
ups tracking estados unidos (3)
Busqué en Google para el mismo pero no pude encontrar ninguna. Entonces lo decido por el lado del servidor en ROR
Aquí es cómo obtener la solicitud y respuesta de UPS y Fedex xml de sus servidores de prueba.
Para Fedex:
track_no = ''111111111111'' (This is test track no)
Este cuerpo de solicitud XML para fedex
xml_req =
"<TrackRequest xmlns=''http://fedex.com/ws/track/v3''><WebAuthenticationDetail><UserCredential><Key>YOUR_ACC_KEY</Key>
<Password>YOUR_ACC_PASSWORD</Password></UserCredential></WebAuthenticationDetail><ClientDetail>
<AccountNumber>YOUR_ACC_NUMBER</AccountNumber><MeterNumber>YOUR_ACC_METER_NUMBER</MeterNumber></ClientDetail>
<TransactionDetail><CustomerTransactionId>ActiveShipping</CustomerTransactionId></TransactionDetail>
<Version><ServiceId>trck</ServiceId><Major>3</Major><Intermediate>0</Intermediate><Minor>0</Minor></Version>
<PackageIdentifier><Value>#{track_no}</Value><Type>TRACKING_NUMBER_OR_DOORTAG</Type></PackageIdentifier>
<IncludeDetailedScans>1</IncludeDetailedScans></TrackRequest>"
path = "https://gatewaybeta.fedex.com:443/xml"
#this url connects to the test server of fedex
# for live server url is:"https://gateway.fedex.com:443/xml"
url = URI.parse(path)
http = Net::HTTP.new(url.host,url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
response = http.post(url.path, xml_req)
response_body = response.body
res = response_body.gsub(/<(//)?.*?/:(.*?)>/, ''</1/2>'')
hash = Hash.from_xml(res.to_s)
and that''s it you will get response in hash variable, I converted xml response in to Hash because we can easily use Hash object at our view to display response data.
Para UPS:
track_no = ''1Z12345E1512345676'' (This is test track no)
Este cuerpo de solicitud XML para UPS
xml_req =
''<?xml version="1.0"?><AccessRequest xml:lang="en-US"><AccessLicenseNumber>YOUR_ACC_LICENCE_NUMBER</AccessLicenseNumber>
<UserId>YOUR_ACC_USER_ID</UserId><Password>YOUR_ACC_PASSWORD</Password></AccessRequest>
<?xml version="1.0"?><TrackRequest xml:lang="en-US"><Request><TransactionReference>
<CustomerContext>QAST Track</CustomerContext><XpciVersion>1.0</XpciVersion></TransactionReference>
<RequestAction>Track</RequestAction><RequestOption>activity</RequestOption></Request>
<TrackingNumber>#{track_no}</TrackingNumber></TrackRequest>''
path = "https://www.ups.com/ups.app/xml/Track"
url = URI.parse(path)
http = Net::HTTP.new(url.host,url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
response = http.post(url.path, xml_req)
response_body = response.body
hash = Hash.from_xml(response_body.to_s)
esta variable de hash contiene la respuesta de la solicitud de seguimiento de UPS en formato Hash
¿Hay alguna API javaScript disponible para el seguimiento de Fedex y UPS? Por favor ayuda
O puede usar la gema active_shipping para una forma más agradable y limpia de rastrear sus paquetes para Fedex y UPS
otra forma fácil de hacerlo: simplemente cree un hipervínculo con el siguiente href
UPS:
http://wwwapps.ups.com/WebTracking/track?loc=en_US&track.x=Track&trackNums=put_tracking_number_here
FEDEX:
(No tan elegante, pero rápido, fácil y hace el trabajo!)