来自USPS费率计算器的回复

时间:2011-10-25 06:01:54

标签: c# .net vb.net web-services usps

我需要从USPS获得运费。

我已与他们注册,获得了用户ID,并尝试使用示例请求XML,如页面所示 - https://www.usps.com/webtools/htm/Rate-Calculators-v1-3.htm ,但不断收到错误回复。

<Error>
<Number>80040b1a</Number>
<Description>API Authorization failure. RateV4 is not a valid API name for this protocol.</Description>
<Source>UspsCom::DoAuth</Source>

我无法弄清楚我在哪里错过了这一点。谷歌也没有帮助: - (

我将API名称作为RateV4传递。我也尝试过使用国际运输API - IntlRateV2。 是的,我也尝试过Secure https://secure.shippingapis.com/ShippingAPITest.dll api。我已经邮寄给支持人员。没有任何效果。

一旦这个基本的东西工作,我计划获取类并使用自定义序列化来序列化我的请求,然后反序列化响应。这比直接使用XML更好。但这可能更适合作为其他问题。让基本的东西工作是一件令人担忧的问题。 感谢

3 个答案:

答案 0 :(得分:7)

这意味着您定位的服务器不支持RateV4。我认为即使在进行测试时也需要为RateV4使用生产服务器。

答案 1 :(得分:2)

目前,没有版本的Rate API实际上可以在USPS测试服务器上运行(如上一条评论中的CountMurphy所述)。但是,在您的帐户被批准访问生产服务器之前,您需要在测试服务器上提供多个成功的API请求。经过USPS的一些来回,他们指出我要认证TrackV2 API。这样您也可以访问Rate API。

以下是USPS支持给出的两个TrackV2请求示例。请务必包含您的实际USERID值。您必须使用这些确切的标签号。

示例#1

http://production.shippingapis.com/ShippingAPITest.dll?API=TrackV2
&XML=<TrackRequest USERID="xxxxxxxx">
<TrackID ID="EJ958083578US"></TrackID></TrackRequest>

示例#2

http://production.shippingapis.com/ShippingAPITest.dll?API=TrackV2
&XML=<TrackRequest USERID="xxxxxxxx">
<TrackID ID="EJ958088694US"></TrackID></TrackRequest>

答案 2 :(得分:1)

当您尝试V2时,那将是您将获得的

<Error>
<Number>80040b1a</Number>
<Description>API Disabled: RateV2.  </Description>
<Source>UspsCom::DoAuth</Source>