Как конвертировать python в php?

Помогите пожалуйста конвертировать этот код в php

from base64 import b64encode
from hashlib import sha256
from hmac import HMAC
from time import time
from urllib.parse import urlsplit
from requests import Session
from requests.auth import AuthBase

class HS256(AuthBase):

    def __init__(self, api_key: str, secret_key: str, window: int = None):
        self.api_key = api_key
        self.secret_key = secret_key
        self.window = window

    def __call__(self, r):
        url = urlsplit(r.url)
        message = [r.method, url.path]
        if url.query:
            message.append('?')
            message.append(url.query)
        if r.body:
            message.append(r.body)

        timestamp = str(int(time() * 1000))
        window = str(self.window) if self.window else None
        message.append(timestamp)
        if window:
            message.append(window)

        signature = HMAC(key=self.secret_key.encode(),
                         msg=''.join(message).encode(),
                         digestmod=sha256).hexdigest()
        data = [self.api_key, signature, timestamp]
        if window:
            data.append(window)

        base64_encoded = b64encode(':'.join(data).encode()).decode()
        r.headers['Authorization'] = f'HS256 {base64_encoded}'
        return r

auth = HS256(api_key='apiKey', secret_key='secretKey')
with Session() as s:
    response = s.get('https://api.hitbtc.com/api/3/futures/account', auth=auth)
    print(response.json())

Конвертировать во что то типа этого

$curl = curl_init();
$timestamp = time() * 1000);
$signature = hash_hmac('sha256', $query, $api_secret);
if ($method === 'POST') {
  curl_setopt($curl, CURLOPT_POST, true);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $query);
}
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
$output = curl_exec($curl);
$output = substr($output, curl_getinfo($curl, CURLINFO_HEADER_SIZE));
curl_close($curl);
$result = json_decode($output, true);

Ответы (1 шт):

Автор решения: avory

Создал и работает

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
$headers[] = 'Content-Type:application/json';
$headers[] = 'User-Agent: Hitbtc PHP Client';
$headers[] = 'Authorization: Basic '. base64_encode($this->api_key .':'. $this->api_secret);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
if (!empty($headers)) curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($curl);
curl_close($curl);
$result = json_decode($output, true);
→ Ссылка