我正在开发一个将 NetSuite 与沃尔玛市场 API 集成的套件脚本。而且,正如这里的另一个 OP所说的那样,他们的文档几乎说如果您不使用 Java,那么您就只能靠自己了。
我正在寻找一种在suitescript或javascript中做同样事情的方法。
来自沃尔玛 API 文档的说明:
通过以下方式对该数据的字节数组表示进行签名:
解码您的私钥的 Base 64、PKCS-8 表示。请注意,密钥是使用 PKCS-8 编码的。各种语言的库提供了指定密钥采用这种格式而不是其他冲突格式(如 PKCS-1)的能力。使用您的密钥的此字节表示,使用带有 RSA 的 SHA-256 对数据进行签名。使用 Base 64 对生成的签名进行编码。
并且,他们的文档中的一个 java 代码可以执行相同的操作:
public static String signData(String stringToBeSigned, String encodedPrivateKey) {
String signatureString = null;
try {
byte[] encodedKeyBytes = Base64.decodeBase64(encodedPrivateKey);
PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(encodedKeyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey myPrivateKey = kf.generatePrivate(privSpec);
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(myPrivateKey);
byte[] data = stringToBeSigned.getBytes("UTF-8");
signature.update(data);
byte[] signedBytes = signature.sign();
signatureString = Base64.encodeBase64String(signedBytes);
} catch (Exception e) {
e.printStackTrace();
}
return signatureString;
}
作为参考,这是要求 dot net 的类似内容。任何帮助,将不胜感激。