当我使用http://localhost/magento/api/rest/orders/?filter[1][attribute]=entity_id&filter[1][gt]=70&page=1&limit=100这样的GET过滤器时,我很难从Magento REST API获取订单
它给出了“错误”:[{“代码”:401,“消息”:“oauth_problem=signature_invalid”}]
当我尝试使用Postman这样的REST客户端访问同一个API端点时,我得到了想要的JSON结果。
我怀疑过滤器查询中的方括号可能导致生成Oauth签名时出现问题。所有没有GET过滤器的端点都工作正常。我正在使用请求节点模块发出带有Oauth标头的GET请求。
是否有任何修复程序可以避免签名无效错误?
4条答案
按热度按时间iqjalb3h1#
问题出在我用来生成OAuth签名的请求节点模块中。它没有考虑URL中的方括号。我修改了模块中的代码以包含方括号。更改OAuth签名生成方法为我修复了这个问题
zf2sa74q2#
由于我花了一点时间来弄清楚如何做到这一点,我想我会把我学到的东西。我的目标是作出一个单一的请求Magento的REST API返回订单与特定的订单状态。浏览GET过滤器文档页面是不是真的有帮助,直到我看到最后一行。以下是我提出的请求,工作:
http://magentohost.com/api/rest/orders?filter[1][attribute]=status&filter[1][in][1]=pending&filter[1][in][2]=processing上述请求将为您获取状态为"待定"或"正在处理"的所有订单的列表。
参考:http://magentoforce.com/2014/08/magento-rest-api-multiple-in-get-filters/
30byixjq3#
对于任何想要这个问题答案的人来说,这里是对我起作用的:
du7egjpx4#
下面是详细答案... http://magentoforce.com/2014/08/magento-rest-api-multiple-in-get-filters/