Woocommerce rest API-'错误:签名无效-提供的签名不匹配

时间:2018-06-23 01:11:18

标签: php amazon-web-services woocommerce woocommerce-rest-api

我正在尝试从woocommerce API下载订单详细信息,以方便显示和更新。 我使用两个单独的网址在本地测试了整个设置。一种用于测试woocommerce安装[从生产站点复制],另一种用于订单显示网页。

在本地一切正常。但是当我将订单显示连接到生产时。它会根据我的设计下载所有订单并显示,但是当我尝试更新订单时会抛出异常。

谷歌搜索一段时间后发现这可能是由于时区差异造成的,请检查服务器和我的电脑上的时间是否正确。

  

无论如何我都改变了

     
    

php时区可同时在服务器和PC php.ini上更正一个,并重新启动httpd

         

更改服务器Linux时区并重新启动服务器。

  

不过,我仅在生产中(托管在AWS中)得到关注。在没有php专家的情况下,但是掌握了一些编程知识。谁能指出我正确的方向?

Fatal error: Uncaught exception
'Automattic\WooCommerce\HttpClient\HttpClientException' with message 'Error:     
Invalid signature - provided signature does not match.     
[woocommerce_rest_authentication_error]' in     
C:\xampp\htdocs\orderdash\vendor\automattic\woocommerce\src\WooCommerce\HttpClient\HttpClient.php:348 Stack trace: #0     
C:\xampp\htdocs\orderdash\vendor\automattic\woocommerce\src\WooCommerce\HttpClient\HttpClient.php(378): Automattic\WooCommerce\HttpClient\HttpClient->lookForErrors(Object(stdClass)) #1 
C:\xampp\htdocs\orderdash\vendor\automattic\woocommerce\src\WooCommerce\HttpClient\HttpClient.php(414): Automattic\WooCommerce\HttpClient\HttpClient->processResponse() #2 
C:\xampp\htdocs\orderdash\vendor\automattic\woocommerce\src\WooCommerce\Client.php(69): Automattic\WooCommerce\HttpClient\HttpClient->request('orders/544', 'PUT', Array) #3 
C:\xampp\htdocs\orderdash\index.php(149): Automattic\WooCommerce\Client->put('orders/544', Array) #4 {main} thrown in 
C:\xampp\htdocs\orderdash\vendor\automattic\woocommerce\src\WooCommerce\HttpClient\HttpClient.php on line 348

连接

$woocommerce = new Client('http://example.com/',
'ck_321cad474478e1275',
'cs_76f8566e67cd7aa31',
['wp_api' => true, 'version' => 'wc/v1']);

下载订单

$data = ['status' => 'processing'];
$order_details = $woocommerce->get('orders',$data);

更新数据[使用按钮提交]

$update_order_id = $_POST['orderid'];
$st = ['status' => 'completed'];
$woocommerce->put('orders/'. $update_order_id, $st);

0 个答案:

没有答案