Netsuite错误:您没有为您的公司请求正确的数据中心“

时间:2014-09-05 09:54:56

标签: php netsuite

我使用的是Netsuite PHPToolkit版本2014_1。

$nsendpoint = "2014_1";
$nshost = "https://webservices.netsuite.com";

今天通过webservice登录时收到此错误

  

您没有为贵公司请求正确的数据中心!请更正网址中的主机。

这是我的回复

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <soapenv:Fault>
            <faultcode>
                soapenv:Server.userException
            </faultcode>
            <faultstring>
                You are not requesting the correct data center for your company ! Please correct the host in the URL.
            </faultstring>
            <detail>
                <platformFaults:unexpectedErrorFault xmlns:platformFaults="urn:faults_2014_1.platform.webservices.netsuite.com">
                    <platformFaults:code>
                        USER_ERROR
                    </platformFaults:code>
                    <platformFaults:message>
                        You are not requesting the correct data center for your company ! Please correct the host in the URL.
                    </platformFaults:message>
                </platformFaults:unexpectedErrorFault>
                <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">
                    partners-java10010.bos.netledger.com
                </ns1:hostname>
            </detail>
        </soapenv:Fault>
    </soapenv:Body>
</soapenv:Envelope>

之前运作良好。

请帮助我并告诉我共鸣的原因? 谢谢大家。

5 个答案:

答案 0 :(得分:2)

我遇到过这个错误但不是在那种背景下 我在处理指定了system.netsuite.com数据中心的帐户时发现了它,有时必须切换到系统。 na1 .netsuite.com
我会尝试 na1

我认为它与美国各州,东/西海岸的2个数据中心以及请求路由的方式有关。
希望有所帮助!

答案 1 :(得分:2)

如今,每个客户的NetSuite数据中心URL都不同。

配置NSconfig.php后,运行以下脚本以标识端点URL。该示例来自PHPToolkit_2018_2的示例文件夹,

require_once 'PHPToolkit/NetSuiteService.php';

$service = new NetSuiteService();
$service->useRequestLevelCredentials(false);

$params = new GetDataCenterUrlsRequest();
$params->account = NS_ACCOUNT;
$response = $service->getDataCenterUrls($params);
$webservicesDomain = $response->getDataCenterUrlsResult->dataCenterUrls->webservicesDomain;
print "url: $webservicesDomain";

一旦有了URL,就可以在配置中输入该URL。

答案 2 :(得分:2)

如果您的SuiteTalk客户端将访问多个NetSuite帐户,则@Charlie Dalsass使用getDataCenterUrls的答案是100%正确。

但是,如果您的客户仅使用一个帐户,则可能可以对URL进行硬编码

https://1234567.suitetalk.api.netsuite.com

其中1234567是您的帐户ID。因此,您将传递给SOAP客户端的WSDL URL示例是

https://1234567.suitetalk.api.netsuite.com/wsdl/v2018_1_0/netsuite.wsdl

答案 3 :(得分:0)

端点需要“https://webservices.na1.netsuite.com”而不是“https://webservices.netsuite.com”,有点烦人。

答案 4 :(得分:0)

我收到了这个错误,但对我来说错误是我使用的 account_id,它区分大小写