如何使用HTTPS(Basic Auth)使用Woocommerce API进行身份验证

时间:2016-06-21 21:20:11

标签: php woocommerce

我正在使用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() );
    }
}

1 个答案:

答案 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() );
   }
}