摘要
UPS API测试环境(客户集成环境,或CIE)不像文档中概述的那样工作。其他人也遇到过这种情况,还是我错过了什么?
问题
跟踪API的UPS Developer Kit包含“Tracking RESTful Developer Guide.pdf”。它列出了用于生成测试响应的跟踪编号:
但是,当尝试测试跟踪编号1 Z5338 FF 0107231059(应返回已尝试交付状态)时,它返回不同的跟踪编号响应(注意不同的查询/跟踪编号){"trackResponse":{"shipment":[{"inquiryNumber":"1Z1442YY7229014688","package":[{"trackingNumber":"1Z1442YY7229014688","deliveryDate":[{"type":"DEL","date":"20220126"}],"deliveryTime":{"type":"DEL","endTime":"163000"},"activity":[{"location":{"address":{"city":"PARAMUS","stateProvince":"NJ","countryCode":"US","country":"US"},"slic":"0761"},"status":{"type":"D","description":"DELIVERED ","code":"F4","statusCode":"011"},"date":"20220126","time":"163000"},{"location":{"address":{"countryCode":"US","country":"US"}},"status":{"type":"M","description":"Shipper created a label, UPS has not received the package yet. ","code":"MP","statusCode":"003"},"date":"20220126","time":"151641"}],"packageCount":1}]}]}}
GET请求URL:https://wwwcie.ups.com/track/v1/details/1Z5338FF0107231059
标头包括所有必要信息:
AccessLicenseNumber、用户名和密码。添加transId和transactionSrc标头会呈现相同的响应。
无论GET请求中发送的是哪个跟踪号码,测试API都返回相同的响应。我已经在python中使用requests和Postman尝试过了。live API工作正常,但我需要特定情况下的响应数据,比如失败的递送尝试,类似于this SO question about the UPS SOAP API。
1条答案
按热度按时间zf2sa74q1#
根据UPS API支持,为其测试/沙箱环境返回相同的响应是预期行为。
我向UPS支持提出的问题
当发送GET请求到CIE url时,无论使用哪个跟踪号码,它都返回相同的响应(已附加)。例如,以下GET请求url返回相同的响应:
这些跟踪号来自Tracking RESTful Developer Guide.pdf。对生产URL的请求可以正常工作,并且我对CIE URL使用了相同的请求头。
UPS API支持的回复
API正在按预期工作。即使使用其他示例跟踪编号,响应文件也将提供相同的信息。
结论
这种设计选择令人困惑,我不明白为什么UPS不像FedEx那样为其REST API提供一个有用的沙箱来模拟追踪号码,也不清楚他们为什么要在REST追踪开发者指南中列出追踪号码示例。
最好的解决方案似乎是找到实时跟踪号码示例,这对于不运送UPS包裹的开发人员来说很困难。