Woocommerce订单更新“woocommerce_api_invalid_customer_id”,但我不是要更新客户

时间:2015-07-13 20:16:17

标签: php wordpress api woocommerce

似乎很简单。我正在尝试通过WooCommerce中的V2 API更新订单。

以下是发出的请求:

PUT /wc-api/v2/orders/8054?oauth_consumer_key=ck_notgoingtogiveittoyouinexample&oauth_nonce=same&oauth_signature_method=HMAC-SHA256&oauth_timestamp=1436817942&oauth_signature=same HTTP/1.1

这是请求正文中的json:

{"order": {"status": "completed"}}

以下是我得到的结果:

{"errors":[{"code":"woocommerce_api_invalid_customer_id","message":"Customer ID is invalid"}]}

奇怪的是,我不是要求更新客户ID,也不是要求更新状态。

此外,当发生这种情况时,WooCommerce确实会更新状态,但它没有正确设置。

我收到了关于以下顺序的状态说明:

  

{订单状态由{。

更改

我是否必须将整个订单对象序列化回服务器?如果没有,任何想法我做错了什么?

谢谢!

[更新#1]

因此,在跟踪API代码并添加一些调试日志记录之后,我注意到$ data没有被设置为从路由进入更新功能。由于我遵循了所有适当的要求“请求体中的json,标题中包含json内容类型”,我不确定是怎么回事。我能够通过使用API​​代码作为模板来创建我自己的订单更新功能来解决这个问题。现在我只是调用自己的FlagOrderCompleted,它工作正常,因为我不需要传递参数。它是hacky,并不是一个全能的解决方案,但至少它正在发挥作用!

1 个答案:

答案 0 :(得分:0)

json正文中需要客户ID才能成功更新订单。请参阅此Resolved issue。还有this链接用于引用带有客户ID的正文语法。

希望这能解决您的问题。