无效签名 - 将产品(使用POST方法)发布到Magento

时间:2017-07-24 09:19:52

标签: java magento

您好我正尝试通过以下代码将产品发布到Magento

JSONObject productJson = new JSONObject();
              JSONObject productParameJson = new JSONObject();
              productParameJson.put("sku", "Chair100");
              productParameJson.put("name", "Chair");
              productParameJson.put("price", "100");
              productParameJson.put("status", "1");
              productParameJson.put("visibility", "1");
              productJson.put("product", productParameJson);
              OAuthRequest oauthRequestPost = new OAuthRequest(Verb.POST, "http://magentohost/api/rest" + "/products");
              oauthRequestPost.addHeader("Content_Type", "application/json");
              oauthRequestPost.addPayload(productJson.toString());
              service.signRequest(accessToken2, oauthRequestPost);
              Response apiResponsePost = oauthRequestPost.send();
              System.out.println(apiResponsePost.getCode());
              System.out.println(apiResponsePost.getBody());

但收到以下错误

{"messages":{"error":[{"code":401,"message":"oauth_problem=signature_invalid"}]}}

同样地,如果我尝试使用以下代码获取产品列表,我会得到产品列表。

 OAuthRequest oauthRequest = new OAuthRequest(Verb.GET, "http://Magentohost/api/rest" + "/products");
                  service.signRequest(accessToken2, oauthRequest);
                  Response apiResponse = oauthRequest.send();
                  System.out.println(apiResponse.getCode());
                  System.out.println(apiResponse.getBody());

我在POST方法中做错了什么,请在上面帮助我。

1 个答案:

答案 0 :(得分:0)

我能够通过使用下面的依赖来解决上述问题:

 <dependency>
        <groupId>com.github.scribejava</groupId>
        <artifactId>scribejava-apis</artifactId>
        <version>4.2.0</version>
    </dependency>

修改后的代码here