Php USPS:API授权失败

Php USPS:API授权失败,php,api,usps,Php,Api,Usps,为什么美国邮政的费率不起作用?我正在使用ratev4,但出现了一个错误: 错误: 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.c

为什么美国邮政的费率不起作用?我正在使用ratev4,但出现了一个错误:

错误:

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>";

我也有同样的问题。RateV4对USPS的测试服务器无效,仅对生产服务器有效。我联系了他们的支持人员,试图获得一个有效的API进行测试,但他们只发送了一个指向他们文档的链接(其中只包含生产API,不包含测试)。最后,我只是要求他们将我的帐户转移到生产环境中,他们确实这样做了。

我在测试Ratev4(和用于国际货运的v2)方面遇到了同样的问题。只要让他们把你转移到生产区就可以很容易地解决这个问题,当然要确保你使用了正确的URL。
除此之外,据我所知,你的设置无论如何都不会起作用,因为你要求的是头等舱的价格,重量是1磅。头等舱最多只能装13盎司…

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

并已收到USPS确认您的帐户处于活动状态:

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

Confirm that your username and password is for this site only. USPS only allows 1 domain per account.
在浏览器中插入以下内容,并使用您自己的用户ID代替任何浏览器URL中的XXXX:

。。。USERID=“XXXX”>ABC公司7771390号套房市场街USTONTX770581234

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

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

这就是为什么您会在生成的装运标签上收到此文本-“样本请勿邮寄”

您可以在此处设置您的USPS WebTools帐户:

设置帐户后,他们将允许您访问测试环境。USPS测试API的URL为:

我建议要求USPS打开生产模式。当USPS批准您使用生产API时,您应使用以下URL:

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

ICCC的工作人员如下:周一至周五,东部时间上午8:00至晚上8:30;周六,东部时间上午8:00至下午6:00;周日和邮政假日-除以下假日外,休息:马丁·路德·金;总统日;哥伦布日退伍军人节,时间为东部时间上午9:00至下午6:00

电邮:uspstechsupport@esecurecare.net电话:1-800-344-7779

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

要请求访问USPS生产API,请在此处填写表格:

USPS不允许您将其API用于批处理或数据清理,因此请确保不要选中请求表单上的这些框


一旦USPS允许您访问其生产API服务器,一切都应该与所有USPS发货选项对应。如果您仍然有问题,请再次检查您是否可以访问USPS的生产API服务器。

为什么您认为RateV4应该有效?表明测试服务尚未更新到RateV4;虽然那篇帖子很古老。你最好打电话给你的USPS客户代表,要求澄清。我试过v3和v2,他们也会产生同样的问题。v2已禁用,因此不再工作。要执行此操作,只需向
uspstechnicalsupport@mailps.custhelp.com
随着消息
请将用户ID xxxxxx移动到生产服务器
我从本地主机使用此API时遇到了一些问题(它适用于其他环境,如QA、登台、生产)。有什么建议吗?这是响应“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应56.0.34.43:80”
Confirm that your username and password is for this site only. USPS only allows 1 domain per account.