Php “商业订单更新”;woocommerce“api”无效“客户id”;但是我';我不想更新客户信息

Php “商业订单更新”;woocommerce“api”无效“客户id”;但是我';我不想更新客户信息,php,wordpress,api,woocommerce,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/

看起来很简单。我正试图通过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会更新状态,但设置不正确

我收到一份状态说明,顺序如下:

{订单状态从更改为{

我必须将整个order对象序列化回服务器吗?如果不是,你知道我做错了什么吗

谢谢

[更新#1]


因此,在跟踪API代码并添加一些调试日志记录后,我注意到$data根本没有从路由进入更新函数,我不知道发生了什么。我可以通过使用API代码作为模板来创建自己的订单更新函数来解决这个问题。现在我只需调用自己的FlagOrderCompleted,它工作正常,因为我不必传递参数。它很有黑客味,不是一个包罗万象的解决方案,但至少它工作正常!

客户id是为了成功更新订单,json正文中需要。请参考此链接。还有用于参考具有客户id的正文语法的链接


希望这能解决您的问题。

谢谢您的帮助。我已将客户id与订单状态一起传递,但没有任何区别。我尝试重新序列化整个对象,但仍然没有成功。在查看和修改woo commerce api插件代码以记录一些内容后,我意识到$data值根本没有被传递我仍然不确定我遗漏了什么,它在请求体中作为JSON传递,并且内容类型设置正确。