首页 > 解决方案 > 解密凭据时出错 (NetSuite)

问题描述

我们想连接到 SFTP 服务器,但无法连接,NetSuite 告诉我们解密凭据时出错。这是我们代码的一个片段:

var connection = sftp.createConnection({
            username: 'XXXXXXXXX',
            passwordGuid: myPwdGuid, // references var myPwdGuid
            url: 'XXX.XXX.XXX.XXX',
            port : 22,
            hostKey: myHostKey // references var myHostKey
        });

这是错误:

{"type":"error.SuiteScriptError","name":"AN_ERROR_OCCURRED_WHILE_DECRYPT_PASSWORDGUID", "message":"资格の情报复号中にエラーが発生しました。","stack":["createError(N/error )", "main(/SuiteScripts/xxxx/xxxx/upload/uploadCsvFile.js:100)"], "原因":{"type":"内部错误","code":"AN_ERROR_OCCURRED_WHILE_DECRYPT_PASSWORDGUID", "详细信息": "资格情报の复号中にエラーが発生しました。","userEvent":null,"stackTrace":["createError(N/error)", "main(/SuiteScripts/xxxx/xxxx/upload/uploadCsvFile. js:100)"],"notifyOff":false}, "id":"","notifyOff":false,"userFacing":false}

我们在这里错过了什么?谢谢!

标签: netsuitesuitescript2.0

解决方案


这可能会有所帮助。您是否使用添加凭据字段创建了密码 GUID?

通常会创建一个仅用于“保管”密码的套件。响应是存储在代码或脚本参数中的密码 GUID。

下面的代码是打字稿:

/**
 *@NApiVersion 2.x
 *@NScriptType Suitelet
 */


import * as runtime from 'N/runtime';
import * as ui from 'N/ui/serverWidget';


export function onRequest(context) {
    if (context.request.method === 'GET') {
        var me = runtime.getCurrentScript();
        var form = ui.createForm({
            title: 'SFTP Password'
        });

        form.addCredentialField({
            id : 'username',
            label : 'Pwd',
            restrictToDomains : <string>me.getParameter({name:'custscript_ksfp_vault_host'}),
            restrictToScriptIds : ['customscript_kotn_send_sftp'],
            restrictToCurrentUser : false
        });
        form.addSubmitButton({
            label: 'Submit Button'
        });

        context.response.writePage(form);
    } else {
        var textField = context.request.parameters.username;
        context.response.write('Store this GUID in the password parameter: ' + textField);
    }
}

推荐阅读