- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我实际上正在开发一个基于 netsuite 产品的新项目。我正在尝试使用 hmac sha256 加密消息。
考虑到我有 stringToEncrypt 和 key ,最简单的方法是什么。
我已经阅读了 Netsuite 中的文档,但我仍然陷入困境......
这是我的功能
function toHmacSHA256Base64(toCrypt, key) {
var inputString = toCrypt;
var myGuid = key;
var sKey = crypto.createSecretKey({
guid: myGuid,
encoding: encode.Encoding.UTF_8
});
var hmacSHA256 = crypto.createHmac({
algorithm: 'SHA256',
key: sKey
});
hmacSHA256.update({
input: inputString,
inputEncoding: encode.Encoding.BASE_64
});
var digestSHA256 = hmacSHA256.digest({
outputEncoding: encode.Encoding.HEX
});
return digestSHA256;
};
当然,在crypto
这个词后面,我使用了'N/crypto'
模块和encode'N/encode'
。非常感谢。
最佳答案
这大致正确,并且看起来与 NS 帮助中的示例完全相同。如果您有一个字符串,那么您可能需要 inputEncoding:encode.Encoding.UTF_8
进行更新调用。
缺少的是如何生成 key 的 guid。为此,您可以使用套房。请注意 NS 帮助中的 addSecretKeyField
而不是 addCredentialField
:
/**
*@NApiVersion 2.x
*@NScriptType Suitelet
*/
define(['N/ui/serverWidget', './config.js'],
function(serverWidget, config) {
function onRequest(context) {
if (context.request.method === 'GET') {
var form = serverWidget.createForm({
title: 'SFTP Password'
});
form.addSecretKeyField({
id : 'username',
label : 'Pwd',
restrictToScriptIds : config.targetScript,
restrictToCurrentUser : false
});
form.addSubmitButton({
label: 'Submit Button'
});
context.response.writePage(form);
} else {
var textField = context.request.parameters.username;
context.response.write('You have entered: ' + textField);
}
}
return {
onRequest: onRequest
};
});
FWIW 加密在这里是错误的术语。您正在创建数据的哈希值,该哈希值将用于确保数据完整性。您无法解密哈希值。
生成 key 的 GUID 后,我只需将其存储在配置文件中(与上面的脚本列表中使用的文件相同。
在 TypeScript 中它看起来像:
/**
* config.js
* @NApiVersion 2.x
*/
export var config = {
'host': '162.242.144.xxx',
'userName': 'unsername',
'targetScript': ['customscript_transmit_dsv_943', 'customscript_transmit_dsv_940', 'customscript_retrieve_dsv_944'],
'hostKey': 'AAAAB3Nza...Wz'
};
然后,除了 config.xs 文件之外的所有内容都可以存储在版本控制中。需要对脚本中使用的文件适当设置受众。
关于netsuite - SuiteScript hmac sha256,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46585524/
我们正在考虑将开发人员从生产中剔除,并需要一种简单的部署管理工具。一些成员在 SalesForce 中使用的一项建议是Jenkins。我以前从未使用过 Jenkins 或任何类型的部署工具。我通常只是
我在 NetSuite 中的 Transaction 对象上创建了一个简单的已保存搜索,但由于某种原因,我看到返回了重复的结果。下面的屏幕截图显示了同一交易记录的重复结果。 任何人都可以帮助我理解为什
请参阅 NetSuite 的 SuiteScript 2.0 API 文档。要设置子列表字段的值,请在 STANDARD 模式下使用“Record.setSublistValue(options)”。
我们正在考虑将开发人员从生产中剔除,并需要一种简单的部署管理工具。一些成员在 SalesForce 中使用的一项建议是Jenkins。我以前从未使用过 Jenkins 或任何类型的部署工具。我通常只是
请参阅 NetSuite 的 SuiteScript 2.0 API 文档。要设置子列表字段的值,请在 STANDARD 模式下使用“Record.setSublistValue(options)”。
我收到了来自 Netsuite 的自动电子邮件错误。 Account: 45447 Environment: SandBox Date & Time: 7/20/2017 3:55 pm Record
我正在尝试通过 API 列出发货项目(UPS、FedEx 等)。正如 Accounting > Shipping Items > List 中所示. ItemFulfillment Record 的文
有没有办法在 Netsuite 中使用 API(SOAP 或 REST)获取所有记录类型的列表 - 标准和自定义(员工、潜在客户、客户等)及其字段? 最佳答案 通过 列出所有支持的记录Suitescr
有没有办法获取 Netsuite 帐户中可用的角色列表?我正在使用 Netsuite 开发配置解决方案,我对 netsuite 还很陌生。如果有人能指出我可以获得角色列表(员工角色?)的 API,那将
我在自定义记录上有一个字段。该字段的名称是 reference_code。 我想用我自己的动态列表填充“reference_code”,该列表将作为下拉列表显示给用户。 我该怎么做?我将我的字段定义为
如何使用 SuiteTalk 获取 NetSuite 中所有支持的记录类型? 描述:我需要 netsuite 帐户中支持的所有记录类型(对象)的列表。我正在尝试使用 java 集成 netsuite
如何访问子列表中的数据。地址子选项卡包含我需要阅读的信息。例如地址簿中存储的地址 2 字段。我需要检索此数据并将其传递到销售订单表单上的自定义文本框。我可以从销售主体字段中读取,但是当我尝试子列表时,
我需要在 NetSuite 中验证内联编辑。 我已经有一个客户端脚本,在正常编辑记录时效果很好。 我尝试在保存之前的功能上添加一个用户事件脚本来验证记录,但内联编辑似乎会忽略这一点。 有人遇到过这种情
有没有办法获取 Netsuite 帐户中可用的角色列表?我正在使用 Netsuite 开发配置解决方案,我对 netsuite 还很陌生。如果有人能指出我可以获得角色列表(员工角色?)的 API,那将
我在自定义记录上有一个字段。该字段的名称是 reference_code。 我想用我自己的动态列表填充“reference_code”,该列表将作为下拉列表显示给用户。 我该怎么做?我将我的字段定义为
我试图以编程方式触发工作流, nlapiTriggerWorkflow(recType, recId, workflowId, actionId, stateId) 但是我得到了, "nlapiTri
我们使用的是suitscript 2.0。我们希望定期从 netsuite 读取自定义报告并将数据保存到第三方系统中。似乎搜索模块和记录模块都无法加载/读取报告数据。是否可以以编程方式获取报告数据?
如何创建一个 SuiteTalk (NetSuite web api) 搜索查询,指定多个搜索词来指示逻辑 OR 运算符? 例如,我想检索其创建或上次修改日期在特定范围内的 TimeBill 记录。这
我在我的 netsuite 站点上部署了一个 ReSTLet,但似乎无法通过管理员之外的任何角色访问它。 Your role does not give you permission to view
我需要清除/重置 NetSuite 中记录上的外部 ID,但我所做的一切都不起作用。 某些 InventoryItem 记录被错误地映射到另一个系统中的记录。我有一个可以同步两个系统的应用程序,但我需
我是一名优秀的程序员,十分优秀!