如何为mws amazon(javascript)创建有效签名?

时间:2016-08-25 10:48:34

标签: javascript amazon-web-services base64 hmac cryptojs

var protocol = "https";
var method = "POST";
var host = "mws.amazonservices.com";
var uri = "/Products/2011-10-01";
var marketPlaceId = "ATVPDKIKX0DER";

function generateRequest(asin, action){
    var today = new Date();
    time = today.toISOString();
    var parameters = {
        // "ASINList.ASIN.1":asin,
        "Query":asin,
        "AWSAccessKeyId":AWSAccessKeyId,
        "Action": action,
        "MarketplaceId":marketPlaceId,
        "SellerId": SellerId,
        "SignatureMethod":"HmacSHA256",
        "SignatureVersion":"2",
        "Timestamp":time,
        "Version":"2011-10-01"
    };

    parameters = $.param( parameters );
    var messageToEncrypt =  method+"\n"+host+"\n"+uri+"\n"+parameters;
    var sig = CryptoJS.HmacSHA256(messageToEncrypt, SecretKey);
    sig = sig.toString(CryptoJS.enc.Base64);
    sig = encodeURIComponent(sig);
    parameters = parameters+"&Signature="+sig;
    var mwsRequest = protocol+"://"+host+uri+"?"+parameters;

    return mwsRequest;
}

// var asaUrl = generateRequest('B01I94N9TC','GetMatchingProduct');
var asaUrl = generateRequest('B01I94N9TC','ListMatchingProducts');

$.ajax({
    url:asaUrl,
    method: "POST",
    success: function(data){
        console.log(data)
    }
});

它出错了 "检查您的AWS Secret Access Key和签名方法。有关详细信息,请参阅服务文档"

但如果您发送到匹配产品正常运行

0 个答案:

没有答案