微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

查找 MWS 参数

如何解决查找 MWS 参数

我正在尝试创建一个 Java 应用程序来读取亚马逊商店中的订单列表。我想使用 MWS,特别是 ListOrders。 至少可以说标准的亚马逊文档令人困惑。

我正在尝试使用这个 ( https://github.com/wspeirs/mws-sdk ) git 公共项目,但我需要一些参数来运行代码

我从 http://docs.developer.amazonservices.com/en_IT/dev_guide/DG_Endpoints.html 读取了 marketId。

我设法从 https://sellercentral.amazon.it/sw/AccountInfo/MerchantToken/step/MerchantToken?ref_=macs_aimertok_cont_acinfohm 卖家中心找到了我的卖家 ID --> 您的商家令牌

在哪里可以找到我的 accessKeyId secretAccessKey applicationName、applicationVersion?

我试过 https://sellercentral.amazon.it/sellingpartner/developerconsole/application 但是有一个名为 IAM ARN 的神秘参数,我不确定这是不是正确的位置。

更新

我尝试手动调用服务

enter image description here

“签名”在哪里

    String str = "POST\n" +
            "mws.amazonservices.com\n" +
            "/\n" +
            "AWSAccessKeyId=AKIA2BLBMTIS45QU6QRH&Action=ListOrders&SignatureMethod=HmacSHA256&Signatureversion=2&Timestamp=2021-06-16T00:36:00&Version=2013-09-01";
    String secretKey = "my private Key";


    String signature = calculateRFC2104HMAC(str,secretKey);

    System.out.println(signature);



public static String calculateRFC2104HMAC(String data,String key)
        throws java.security.SignatureException
{
    String result;
    try {
        SecretKeySpec signingKey = new SecretKeySpec(key.getBytes("UTF-8"),HMAC_SHA256_ALGORITHM);
        Mac mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
        mac.init(signingKey);
        byte[] rawHmac = mac.doFinal(data.getBytes("UTF-8"));
        byte[] encodedBytes = Base64.encodeBase64(rawHmac);
        result =  new String(encodedBytes);
    } catch (Exception e) {
        throw new SignatureException("Failed to generate HMAC : " + e.getMessage());
    }
    return result;
}

亚马逊重播

the value of a query string parameter may not contain a '=' delimiter

我在查询字符串中传递所有参数。如果尝试不同的“签名”,亚马逊会抱怨说签名无效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。