2012-04-02 232 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服務器。