Ниже вы найдете пример отправки запроса: формирование массива параметров, создание подписи и, непосредственно, пример запроса, с использование cURL. Пример реализован на языке PHP 5.5.

/***
 * Получение списка карт
 * @param string $email
 * @return mixed
 */
public function cardsList($email = '')
{
 $data = [
   'client_id' => 6,
   'action' => 'cards_list',
   'email' => $email
 ];

 return $this->_sendRequest('/v1/workers', $data);
}

/***
 * Отправка запроса
 * @param string $method
 * @param array $data
 * @return mixed
 */
private function _sendRequest($method = '', array $data = [])
{
 $data = $this->_getSignedData($data);

 $ch = curl_init();
 curl_setopt($ch, CURLOPT_HEADER, FALSE);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

 curl_setopt($ch, CURLOPT_URL, 'https://api.solar-staff.com/' . $method);
 curl_setopt($ch, CURLOPT_POST, TRUE);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

 $curlResponse = curl_exec($ch);
 $response = json_decode($curlResponse);

 return $response;
}

/***
 * Формирование и подписание тела запроса
 * @param array $data
 * @return array
 */
private function _getSignedData(array $data = [])
{
 ksort($data);

 $data['signature'] = sha1(implode(';',array_map(function ($k, $v) {return ($k . ':' . $v);},array_keys($data), $data)) . ';' . $salt);

 return $data;
}
Вы нашли ответ?