Использование API v2 от WooCommerce

РЕДАКТИРОВАТЬ:
В случае, если кто-то читает это, я написал этот пост до того, как API v2 был задокументирован, однако документация теперь доступна, поэтому, если у вас возникли проблемы, обратитесь к: http://woothemes.github.io/woocommerce-rest-api-docs/#introduction


Я пытаюсь обновить клиентскую библиотеку PHP REST API, найденную здесь: https://github.com/kloon/WooCommerce-REST-API-Client-Library.

Я изменил API_ENDPOINT на wc-api / v2 / и добавил эту функцию:

public function create_order( $data ) {
return $this->_make_api_call( 'orders/', $data, 'POST' );
}

Я получил:

Warning:  rawurldecode() expects parameter 1 to be string, array given in /home/class-wc-api-client-    v2.php on line 441
Warning:  rawurldecode() expects parameter 1 to be string, array given in /home/class-wc-api-client-v2.php on line 441
object(stdClass)#1801 (1) {
["errors"]=>
array(1) {
[0]=>
object(stdClass)#1798 (2) {
["code"]=>
string(3) "401"["message"]=>
string(19) "cURL HTTP error 401"}
}
}

Я использую следующий код для вызова create_order

$data = array(
"status" => "processing",
"payment_details" => array("method_id" => "paypal", "method_title" => "PayPal", "paid" => 1),
"line_items" => array("id" => 123, "subtotal" => 45.00, "total" => 45.00, "total_tax" => 0.00, "price" => 45.00, "quantity" => 1, "name" => "itemName", "product_id" => 123)
);
var_dump($wc_api->create_order($data));

Любая помощь?

Спасибо!

1

Решение

Хотя я не работал с WooCommerce API или API-клиентом, о котором вы упомянули, первое, что я заметил, было cURL HTTP ошибка 401, возможно ошибка аутентификации. Пожалуйста, проверьте ключ потребителя & секрет.

Вторым было предупреждение, произведенное в rawurldecode () функция (метод). Вы передаете массив, но функция ожидает строку. Так что тщательно проверяйте и эту часть.

1

Другие решения

В настоящее время проблема rawurlencode присутствует как в API, так и в используемой вами библиотеке.

Ошибка аутентификации связана с тем, что ваша конечная точка — «orders /», она должна быть «orders» (без косой черты)

1

По вопросам рекламы [email protected]