【发布时间】:2018-04-04 15:55:10
【问题描述】:
我正在尝试从 Woocommerce API 创建一个订单,但它没有按预期工作:请求(作为 POST 发送)正在返回所有订单(就像它是一个 GET 请求),而不是创建一个新订单。 真正奇怪的是,同样的请求正在预生产服务器上运行,但在生产服务器上却没有。
这似乎是 API 的一个全球性问题,因为除了用于获取访问令牌的 POST 请求之外,其他请求(例如从 WP API 创建帖子)不起作用。
这是我作为 POST 发送的请求:
curl -X POST https://www.domain.tld/wp-json/wc/v2/orders?access_token=... \
-H "Content-Type: application/json" \
-d '{
"customer_id": "1",
"payment_method": "app",
"payment_method_title": "Test payment",
"set_paid": false,
"billing": {
"first_name": "test",
"last_name": "test",
"address_1": "test",
"address_2": "test",
"city": "test",
"postcode": "00000",
"country": "FR",
"phone": "0123456789",
"email": "test@test.tld"
},
"shipping": {
"first_name": "test",
"last_name": "test",
"address_1": "test",
"address_2": "test",
"city": "test",
"postcode": "00000",
"country": "FR",
"phone": "0123456789",
"email": "test@test.tld"
},
"shipping_lines": [
{
"method_id": "livraison_gratuite",
"method_title": "Livraison gratuite",
"total": 0
}
],
"line_items": [
{
"product_id": 302,
"variation_id": 589,
"quantity": 1
},
{
"product_id": 798,
"quantity": 1
}
]
}'
同样的请求再次在预生产服务器上运行,所以我认为问题与请求本身无关。
这是我在邮递员中收到的生产服务器上此请求的返回:
我消除了所有可能的原因:
- 两个网站都使用相同的插件,Wordpress 版本和插件都是最新的,
- 两个网站都使用 https,
- 缓存插件已停用,
- Woocommerce 和 WP Oauth Server 中的 API 设置是相同的,
- 用于发送请求的用户(使用 WP Oauth Server 提供的访问令牌标识)是 admin,
- 据我所知,服务器配置是相同的 (PHP7)。
我不知道为什么会发生这种情况。任何人都知道可能导致这种情况的原因吗?
【问题讨论】:
标签: php wordpress api wordpress-rest-api