Я создаю интеграцию между 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-запросам.