Netsuite 在 POSTMAN 中工作,但在 cUrl 中不起作用 - 401 未经授权

问题描述 投票:0回答:0

我正在尝试使用 RESTlet 创建 NetSuite 的新客户。我在 Postman 中成功添加,但是当我尝试使用来自 Postman 的 PHP - cURL 代码复制到我的代码中时,我得到以下结果:

我正在生成 Oauth 1.0,它在订单记录中工作正常,只是在客户中它不工作。

    $base_string =
        "POST&" . urlencode(NETSUITE_URL) . "&" .
        urlencode(
             "&oauth_consumer_key=" . NETSUITE_CONSUMER_KEY
            . "&oauth_nonce=" . $oauth_nonce
            . "&oauth_signature_method=" . $oauth_signature_method
            . "&oauth_timestamp=" . $oauth_timestamp
            . "&oauth_token=" . NETSUITE_TOKEN_ID
            . "&oauth_version=" . $oauth_version
            . "&realm=" . NETSUITE_ACCOUNT

        );
    $sig_string = urlencode(NETSUITE_CONSUMER_SECRET) . '&' . urlencode(NETSUITE_TOKEN_SECRET);
    $signature = base64_encode(hash_hmac("sha256", $base_string, $sig_string, true));

    $auth_header = "OAuth "
        . 'oauth_signature="' . rawurlencode($signature) . '", '
        . 'oauth_version="' . rawurlencode($oauth_version) . '", '
        . 'oauth_nonce="' . rawurlencode($oauth_nonce) . '", '
        . 'oauth_signature_method="' . rawurlencode($oauth_signature_method) . '", '
        . 'oauth_consumer_key="' . rawurlencode(NETSUITE_CONSUMER_KEY) . '", '
        . 'oauth_token="' . rawurlencode(NETSUITE_TOKEN_ID) . '", '
        . 'oauth_timestamp="' . rawurlencode($oauth_timestamp) . '", '
        . 'realm="' . rawurlencode(NETSUITE_ACCOUNT) . '"';

    $curl = curl_init();

    curl_setopt_array($curl, array(
        CURLOPT_URL => 'https://8648945.suitetalk.api.netsuite.com/services/rest/record/v1/customer',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => '',
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => 'POST',
        CURLOPT_POSTFIELDS => '{
    "companyName": "Company 1615554322",
    "email": "[email protected]"
}',
        CURLOPT_HTTPHEADER => array(
            'Content-Type: application/json',
            'Authorization: ' . $auth_header . ''
        ),
    ));

    $response = curl_exec($curl);

    curl_close($curl);
    echo $response;`

我收到的错误:

"title":"Unauthorized","status":401,"o:errorDetails":[{"detail":"Invalid login attempt. For more details, see the Login Audit Trail in the NetSuite UI at Setup > Users/Roles > User Management > View Login Audit Trail.","o:errorCode":"INVALID_LOGIN"}]}

我正在使用此代码添加订单,但是当我尝试记录客户时,出现此错误。

php curl oauth postman netsuite
© www.soinside.com 2019 - 2024. All rights reserved.