NetSuite / SuiteScript nlapiRequeestURL () Ошибка аутентификации OAuth - PullRequest
0 голосов
/ 11 января 2020

Я создаю интеграцию между NetSuite и службой обработки кредитных карт PayTrace. У меня нет проблем с получением ключа аутентификации от PayTrace. Однако по какой-то причине при отправке запроса с использованием nlapiRequestURL (url, postData, заголовки, httpMethod) я получаю ошибку 401 и значение «Маркер доступа недействителен» в информация заголовка ответа. Но если я сделаю тот же запрос с тем же токеном в Postman, он будет работать так, как должен. Вот пример заголовков запросов, которые я добавляю к запросу (как указано в документации по API PayTrace):

[
        { "Authorization" : "Bearer XXXXXXXXXX:XXXXXXXXXX:XXXXXXXXXX" }
    ,   { "Content-Type" : "application/json" }
    ,   { "Cache-Control" : "no-cache" }
]

Возможно ли, что Postman добавляет значение заголовка, которое обеспечивает надлежащую аутентификацию, которую нет в NetSuite? Я не могу понять, почему действительный токен не будет принят из одной системы, а получен из другой системы. Мне удалось получить эти дополнительные значения заголовков из Postman, если они полезны для выяснения этой проблемы:

[
        { "User-Agent" : "PostmanRuntime/7.21.0" }
    ,   { "Accept" : "*/*" }
    ,   { "Postman-Token" : "96d421d7-c47b-4c58-8462-aece865bc673" }
    ,   { "Host" : "api.paytrace.com" }
    ,   { "Accept-Encoding" : "gzip, deflate" }
    ,   { "Content-Length" : "401" }
    ,   { "Cookie" : "BIGipServeriAPP-paytraceAPI.app~iAPP-paytraceAPI_pool=!QQe1sQcLLr7QlVc1dGILKzdv552p1+6KLUz7ZVVyyyi2jm4f32eA463wj2bBLYLGBMTo5UmUvj4DzNk=; TS0179310f=01bb9fcf1ed38f2fe502d18776cc42820b00dd85ced785a7a00c8aa2120628c8b485e498ef8a8cacad2fe52a52612a9c6c8aee023b02bca74bc7716a8e066a85df49c4acfa" }
    ,   { "Connection" : "keep-alive" }
]

Я совершенно не уверен относительно того, какие заголовки NetSuite добавляет к этим HTTP-запросам.

1 Ответ

0 голосов
/ 11 января 2020

Еще раз сам разбираюсь. Я передавал заголовки как массив объектов пары имя / значение заголовка, но предполагалось, что это просто один объект из пары имя / значение информации заголовка. Это решило проблему. Я не знаю, почему я сделал это неправильно, так как я делал такие вещи бесчисленное количество раз. Может быть, мне нужен отпуск ...

...