从外部Suitelet调用Restlet

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

我在一些外部可用的 suitelet 中遇到了一些问题,其中出现的某些问题在内部访问 suitelet 时消失了。对于其中一些问题,我认为一个好的解决方法是将受影响的执行卸载到 Restlet。我正在研究的理论是,问题取决于用户是否正在执行代码。我的问题是,我从来不擅长连接到 Restlet,而且我认为我在那里看到的内容现在已经过时了。我认为现在他们不允许对 Restlet 进行用户名/密码身份验证。是否有一个很好的参考可以突出显示从 suitelet 中调用 Restlet 的最佳方法?我不能直接使用restlet,因为suitelet会生成一个用于数据输入的网页,所以我希望这是可行的。

我想链接到一个页面,其中包含他们所说的操作,但需要 NetSuite 登录才能访问。但我可以详细说明它的内容以及我遇到的问题。

所以,他们首先说确定网址和动词,是的,好吧,无论如何,我已经知道了。然后他们说按照字母顺序对 url 参数及其值进行排序。下面是他们示例的屏幕截图。

此时,我不确定如何生成随机数值或时间戳值。我以前曾这样做过一次,但在 C# 中,我没有在 SuiteScript 中使用与使用 .NET 相同的库。如果有在 SuiteScript 中运行良好的外部库,或者 2.0 API 模块中可用的方法,可以生成这些值,那就太好了。

继续...然后它说使用&符号连接键/值对。问号后面几乎是一个标准的网址。之后它说对该字符串进行 url 编码。也不是问题。之后,他们想要一个类似于 HTTP_VERB%{url_encoded_base_url}&{url_encoded_parameter_string} 的字符串。这也不是我关心的放在一起的事情。然而,下一部分也是我不确定如何完成的事情。

下一步说明使用消费者秘密和令牌秘密使用&符号来签署此结果字符串。我真的不确定这应该如何从 SuiteScript 中完成。之后,它希望对结果值进行 Base64 编码,这很简单,并且该值将进行 url 编码。之后,我不确定如何将该值传递给 Restlet 进行身份验证。我认为它被设置为标题,但我认为我忽略了它是什么。

javascript netsuite suitescript2.0
1个回答
0
投票

您可以调查通过

https.requestRestlet(options)
操作调用 RESTlet。请注意,您的 RESTlet 必须部署到 Suitelet 运行所在的角色。

如果您尝试 POST 到外部 SUITELet,如果没有指示 NetSuite 会话(UI 或 SuiteCommerce)的 cookie,您可能无法执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.