const CryptoJS = require('../lib/core.js');
const app = getApp();
/**计算StringToSign和签名 */
function getApiData(ApiName, data) {
var datas = supplyParam(ApiName, data);
var str = getCanonicalized(datas);
//2 构造签名字符串。
var val = "GET&%2F&" + encode(str);
// 3.计算HMAC
var sha1Pw = CryptoJS.HmacSHA1(val, app.globalData.AccessKeySecret + "&");
//4.Base64编码
var Signature = CryptoJS.enc.Base64.stringify(sha1Pw);
//将签名封装到data数据返回 直接用来请求
data["Signature"] = Signature;
return data;
}
下面是获得签名的一些重要方法
/** 完善参数 这些参数基本都是固定写法 接口调用只需传递 调用具体API名称 以及机器编号等参数组成的data对象即可
*/
function supplyParam(ApiName, data) {
data["Action"] = ApiName;
data["AccessKeyId"] = app.globalData.AccessKeyId;