Estoy tratando de conectarme a una API y solo proporcionan guías para python y Javascript. Estoy tratando de encontrar el equivalente para php pero me quedo corto.
Para referencia adicional: https://docs.deribit.com/#authentication
No puedo obtener la firma adecuada en PHP.
JavaScript:
var timestamp = Date.now(); var nonce = "abcd"; var data = ""; var signature = CryptoJS.HmacSHA256(`${timestamp}\n${nonce}\n${data}`, accessSecret).toString();Pitón:
timestamp = round(datetime.now().timestamp() * 1000) nonce = "abcd" data = "" signature = hmac.new( bytes(clientSecret, "latin-1"), msg=bytes('{}\n{}\n{}'.format(timestamp, nonce, data), "latin-1"), digestmod=hashlib.sha256 ).hexdigest().lower()PHP: (*No sé cómo crear el nonce)
$timestamp = number_format(microtime(true) * 1000, 0, '.', ''); $nonce = number_format(microtime(true) * 1000, 0, '.', ''); $data = ""; $key = $timestamp.$nonce.$data; $sign = hash_hmac('sha256',$key,$secret); $sign = bin2hex($sign);Para la generación aleatoria requerida 'a-z0-9', 8 caracteres, puede usar chr y rand para hacer el trabajo.
Por lo tanto, intente lo siguiente
<?php $x1= chr(rand(0,25)+97) ; $x2= chr(rand(0,9)+48) ; $x3= chr(rand(0,25)+97) ; $x4= chr(rand(0,9)+48) ; $x5= chr(rand(0,25)+97) ; $x6= chr(rand(0,9)+48) ; $x7= chr(rand(0,25)+97) ; $x8= chr(rand(0,9)+48) ; $nonce = $x1.$x2.$x3.$x4.$x5.$x6.$x7.$x8; ?>