3

我一步一步地跟着 wc_api_docs使用 oauth1.0a 单腿通过 http 进行身份验证,但是我的代码在 php 或 java 中的签名与邮递员签名不同,我面临这个错误:

{ "code": "woocommerce_rest_authentication_error",
"message": "无效签名 - 提供的签名不匹配。",
"data": { "status": 401 } }

$url = rawurlencode("http://localhost/wordpress/wordpress/wp-json/wc/v1/products");
$ck = rawurlencode("oauth_consumer_key").'='.rawurlencode("ck_s6ec05447691a63c76b3ffc575f2f29ba7c0438c");
$nonce = rawurlencode("oauth_nonce").'='.rawurlencode("zNebTNK");
$timestamp = rawurlencode("oauth_timestamp").'='.rawurlencode("1468302526");
$s_method = rawurlencode("oauth_signature_method").'='.rawurlencode("HMAC-SHA256");


$params = rawurlencode($ck."&".$nonce."&".$s_method."&".$timestamp);
$http_method = "GET";

$signature_base = $http_method."&".$url."&".$params;
echo $signature_base.'-------------';
$s = hash_hmac('sha256', $signature_base, 'cs_s70ac550670bdf16e72213855c9745518320e68c', true);
echo urlencode(base64_encode($s));

而且我无法生成正确的签名,但是具有此值的邮递员可以正常工作!

4

0 回答 0