我正在使用WooCommerce-REST-API-Client-Library-v2并尝试简单的get orders调用。我通过http建立与测试服务器的连接没有问题,但是当我尝试使用https连接到生产服务器时,我在响应中收到无效的JSON返回错误。在woocommerce设置中启用安全结帐。我已尝试使用和不使用base64_encoding凭据。有人可以告诉我我做错了什么,或者提供一个使用WooCommerce-REST-API-Client-Library-v2通过HTTPS进行身份验证的正确格式示例。这是我的代码。谢谢!
$consumer_key = base64_encode('ck_removed'); // Add your own Consumer Key here
$consumer_secret = base64_encode('cs_removed'); // Add your own Consumer Secret here
$store_url = 'https://removed.co.uk'; // Add the home URL to the store you want to connect to here
$is_ssl= TRUE;
try {
$client = new WC_API_Client( $consumer_key, $consumer_secret, $store_url);
// Get WC Orders Request
$orders=$client->orders->get();
$orders=$orders['orders'];
} catch ( WC_API_Client_Exception $e ) {
echo $e->getMessage() . PHP_EOL;
echo $e->getCode() . PHP_EOL;
if ( $e instanceof WC_API_Client_HTTP_Exception ) {
print_r( $e->get_request() );
print_r( $e->get_response() );
}
}
答案 0 :(得分:1)
如果存在HTTP状态代码:301已永久移动,则您尝试访问的端点未启用SSL / TLS。因此,将主机从HTTPS更改为HTTP,您将完成。但是,如果端点启用了SSL / TLS,则可以使用基于密钥(公钥,私钥)的基本身份验证。在启用SSL / TLS的端点上,OAuth不起作用。祝你好运!
$options = array(
'debug' => true,
'return_as_array' => false,
'validate_url' => false,
'timeout' => 30,
'ssl_verify' => false
);
try {
$client = new WC_API_Client( $http_store_url, $consumer_key $consumer_secret, $options );
$orders=$client->orders->get();
print_r($orders);
} catch ( WC_API_Client_Exception $e ) {
echo $e->getMessage() . PHP_EOL;
echo $e->getCode() . PHP_EOL;
if ( $e instanceof WC_API_Client_HTTP_Exception ) {
print_r( $e->get_request() );
print_r( $e->get_response() );
}
}