Beispiel #1
0
        private byte[] GetPayloadWithSalt(Message message)
        {
            var requestBody = new
            {
                GameName   = message.GameName,
                KeysCount  = message.KeysCount,
                Take       = message.Take,
                Commission = message.Commission
            };
            string salt      = _configuration.GetSection("Settings").GetSection("HashingSecret").Value;
            var    saltBytes = Encoding.UTF8.GetBytes(salt);

            var payload = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(requestBody));
            var data    = new byte[payload.Length + saltBytes.Length];

            for (int i = 0; i < payload.Length; i++)
            {
                data[i] = payload[i];
            }

            for (int i = 0; i < saltBytes.Length; i++)
            {
                data[payload.Length + i] = saltBytes[i];
            }
            return(data);
        }
Beispiel #2
0
        private Message MapToMessage(PaymentSession session)
        {
            var game        = session.GameKeys.First().Game;
            var marketShare = double.Parse(_configuration.GetSection("Settings").GetSection("MarketShare").Value);
            var message     = new Message();

            message.VendorUrl  = game.Vendor.Username;
            message.GameName   = game.Name;
            message.KeysCount  = session.GameKeys.Count;
            message.Take       = session.GameKeys.Count * game.Price * (1 - marketShare);
            message.Commission = marketShare;
            return(message);
        }
Beispiel #3
0
        private string GenerateHash(Message message)
        {
            var data = GetPayloadWithSalt(message);
            MD5 md5  = new MD5CryptoServiceProvider();

            data = md5.ComputeHash(data);
            var sBuilder = new StringBuilder();

            for (int i = 0; i < data.Length; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }
            return(sBuilder.ToString());
        }