2012-04-02 155 views
11

为什么USPS不适用此费率?我使用ratev4,我得到一个错误:USPS:API授权失败

错误:

API Authorization failure. RateV4 is not a valid API name for this protocol. 
UspsCom::DoAuth 

这里是我的代码:

<?php 
$devurl = "testing.shippingapis.com/ShippingAPITest.dll"; 
$puburl = "https://secure.shippingapis.com/ShippingAPITest.dll"; 

$service = "RateV4"; 
$userid = "690DEVBL1739"; 

$xml = rawurlencode('<RateV4Request USERID="xxxxx"> 
    <Revision/> 
    <Package ID="1ST"> 
     <Service>FIRST CLASS</Service> 
     <FirstClassMailType>LETTER</FirstClassMailType> 
     <ZipOrigination>44106</ZipOrigination> 
     <ZipDestination>20770</ZipDestination> 
     <Pounds>1</Pounds> 
     <Ounces>0.0</Ounces> 
     <Container/> 
     <Size>REGULAR</Size> 
     <Machinable>true</Machinable> 
    </Package> 
    </RateV4Request>'); 

    $request = $devurl . "?API=" . $service . "&xml=" . $xml; 


    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $request); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_HTTPGET, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 



    $response = curl_exec($ch); 
    curl_close($ch); 

    echo "<pre>"; 
    print_r($response); 
    echo "</pre>"; 
+0

为什么你认为RateV4应该是有效的? – stark 2012-04-02 01:55:49

+2

[noPCommerce Forums](http://www.nopcommerce.com/boards/t/14719/estimate-shipping-configuration-upsusps-ratev4-is-not-a-valid-api.aspx)表明,测试服务尚未更新到RateV4;尽管这个帖子很古老。通过致电您的USPS客户代表并要求澄清,您可能会获得最佳服务。 – sarnold 2012-04-02 01:56:43

+0

我已经尝试过v3和v2,它们会产生相同的问题。 v2被禁用,因此它不再工作。 – 2012-04-02 02:06:44

回答

1

我对测试Ratev4(和国际货运的v2)的东西有同样的问题。只是要求他们将您的产品转移到固定的位置,但请确保您使用正确的网址。 除此之外,根据我的理解,您的设置无法正常工作,因为您要求提供头等舱的费率,重量为1磅。第一类只上升到13盎司...

5

我有同样的问题。 RateV4不适用于USPS的测试服务器,仅限于生产。我联系了他们的支持人员,试图获得一个有效的API来进行测试,但他们发送的所有内容都是链接到他们的文档(它只包含生产API,而不是测试)。最后,我只是要求他们把我的账户转到生产,他们也这样做了。

+1

要执行此操作,只需发送一封电子邮件到'uspstechnicalsupport @ mailps.custhelp.com',并显示“请将用户ID xxxxxx移动到生产服务器” – LamonteCristo 2014-10-19 03:10:57

4

我假设你已经注册USPS Web工具在这里:

https://secure.shippingapis.com/registration/

,并已收到确认函USPS您的帐户被激活:

如果您需要设置USPS或您的客户是在退房收到此错误(见下文),你应该确认以下

Confirm that our USPS API access is approved 

Confirm that it is not in test mode and is in production mode 
    If USPS says your account is active, this does not mean it is in production mode, - you need to call USPS and specifically request that it be moved to production mode after your account has been approved. A good idea is to perform this quick test: 

插入以下到您的浏览器与自己的USERID代替XXXX的任何浏览器的URL:

https://secure.shippingapis.com/ShippingAPITest.dll?API=CarrierPick ... USERID = “XXXX”> ABC Corp.Suite 7771390市场StreetHoustonTX770581234

如果您的USPS帐户处于活动状态,它应该接受用户名。

Confirm that your username and password is for this site only. USPS only allows 1 domain per account. 

http://production.shippingapis.com/ShippingAPI.dll

的问题是,在默认情况下,你没有访问USPS的生产API。他们必须先批准你。请记住,他们只允许您在每个帐户的一个网站上使用它,因此如果您将Magento设置为客户,客户或除您自己以外的其他业务实体,则应为其设置单独的USPS帐户。

这就是为什么你会收到这文字 - “样本不包邮”在生成的运输标签。

你可以设置你的USPS WebTools中占的位置:

http://www.usps.com/webtools/

一旦你已经设定了您的帐户,他们会给你访问的测试环境。对于USPS测试API的网址是:http://testing.shippingapis.com/ShippingAPITest.dll

我建议,要求美国邮政开启生产模式。当你通过美国邮政生产API获得批准,你应该使用下列网址:

http://production.shippingapis.com/ShippingAPI.dll

https://secure.shippingapis.com/ShippingAPI.dll

当你完成你的测试,通过电子邮件发送USPS互联网客户服务中心(ICCC)。他们将切换您的配置文件,以允许您访问生产服务器并为您提供生产URL。

ICCC的工作人员安排如下:星期一至星期五上午8:00至下午8:30东部时间星期六上午8:00至下午6:00东部时间星期日和邮政假期 - 除以下假期外关闭假期:马丁路德金;总统日;哥伦布日; &退伍军人日从上午9:00至下午6:00东部时间

电子邮件小时:[email protected]电话:1-800-344-7779

但是请记住,这是非常重要的,你设置为每个网站(或每个域至少一个)分别设置一个USPS帐户。如果您在多个网站上使用您的帐户,USPS将禁止您访问其生产服务器。

请访问USPS生产API,在这里填写表格:http://www.usps.com/webtools/webtoolsapirequestform.htm

USPS不允许你使用他们的API进行批处理或数据清洗,所以一定要不是在检查这些盒子请求表单。

一旦美国邮政让您访问他们的生产API服务器,一切都应该对应于所有美国邮政运送选项。如果仍有问题,请再次检查您是否有权访问USPS的生产API服务器。