Есть код:
$url = $uri . '/token?' . http_build_query(['redirect_uri' => $redirect_uri]);
$params = [
'code' => $code,
'client_id' => $client_id,
'grant_type' => 'authorization_code'
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$response_curl = json_decode(curl_exec($ch), true);
$socket = new waNet(['format' => waNet::FORMAT_JSON]);
$response_wanet = $socket->query($url, $params, waNet::METHOD_POST);
waLog::dump(compact('response_curl', 'response_wanet'));
Результат в логе:
[
'response_curl' => [
'access_token' => 'a8bdc8109e30e73701512f9f32fc86e6',
],
'response_wanet' => [
'error' => 'invalid_request',
'error_description' => 'Required parameter is missing: code',
],
]
Параметры запроса составлены в соответствии с п.3 раздела 1 - Серверные приложения соответствующей статьи
От себя добавлю: в данном случае параметр redirect_uri лишний. Но и на разницу результатов никак не влияет.
1 комментарий
Надо было добавить `request_format`, тогда всё норм