Я не могу правильно подписаться на Coinbase Pro FIX API. Этот код работал нормально до нескольких месяцев go (я не использовал его некоторое время). В другой раз я прочитал документы, чтобы найти некоторые изменения, и обнаружил, что время отправки должно быть как Unix отметка времени в секундах, ранее я использовал DateTime в формате FIX. Я пытался изменить это, но по-прежнему не работает, после я покажу код, который я использую для создания подписи
private string CreateAccessSign(
char msgType,
string msgSeqNumber,
string senderCompId,
string targetCompId,
string password
)
{
var sendingTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
var stringToHash = string.Join('\x0001', sendingTime, msgType, msgSeqNumber, senderCompId, targetCompId, password);
var privateApiKeyAsByteArray = Convert.FromBase64String(_privateApiKey);
using var hmac = new HMACSHA256(privateApiKeyAsByteArray);
var signature = hmac.ComputeHash(new UTF8Encoding(false).GetBytes(stringToHash));
return Convert.ToBase64String(signature);
}
Ответ от их сервера FIX - «недопустимая подпись» в соответствующей метке FIX. Где я не прав?