设置参数后,React Native Woocommerce API失败

时间:2019-06-18 00:45:11

标签: react-native woocommerce

我最近决定给React Native一个机会。我在使用react-native-woocommerce-api与Woocommerce进行交流时遇到了一些麻烦。

当我获得所有产品时,它很好用,但是当我尝试为HTTP调用设置属性时,它失败。

这有效:

componentDidMount() {
    console.log("Loading products...");
    Woocommerce.get("products", {}).then(response => {
        console.log(response);
    });
}

这不是(每页添加):

componentDidMount() {
    console.log("Loading products...");
    Woocommerce.get("products", {per_page: 3}).then(response => {
        console.log(response);
    });
}

引发错误:

Object {
    "code": "woocommerce_rest_authentication_error",
    "data": Object {
        "status": 401,
    },
    "message": "Invalid signature - the signature doesn't match.",
}

有效的HTTP请求:

http://www.example.com/wp-json/wc/v3/products?oauth_consumer_key=###&oauth_nonce=###&oauth_signature_method=HMAC-SHA256&oauth_timestamp=1560818379&oauth_version=1.0&oauth_signature=###=&

无效的HTTP请求:

http://www.example.com/wp-json/wc/v3/products?oauth_consumer_key=###&oauth_nonce=###&oauth_signature_method=HMAC-SHA256&oauth_timestamp=1560817909&oauth_version=1.0&oauth_signature=###=&per_page=3

我还应该补充一点,当使用Postman添加per_page=3时,它可以工作。我不知道它有什么区别,HTTP调用非常相似,似乎只有uri参数的顺序不同。

感谢您的帮助!整整一整天都被困在这儿。 :/

1 个答案:

答案 0 :(得分:1)

node_modules \ react-native-woocommerce-api \ lib \

中打开 react-native-woocommerce-api.js

然后转到第195行(_getOAuth()。authorize函数)并进行更改:

params.qs = this._getOAuth().authorize({
  url: url,
  method: method
});

params.qs = this._getOAuth().authorize({
  url: url + '?' + this.join(data, '&'),
  method: method
});