Ejemplo n.º 1
0
        public PaymentCodeDTO GetPaymentCode(UserAccount user)
        {
            DateTime currentTime = DateTime.UtcNow;

            string paymentCode = $"{Constant.PAYMENT_CODE_PREFIX}{string.Concat(HMACSHA512.Generate15(user.SecretKey, currentTime).Skip(1))}";

            var result = new PaymentCodeDTO
            {
                PaymentCode     = paymentCode,
                ExpireTimestamp = currentTime.AddMinutes(Constant.PAYMENT_CODE_EXPIRE_MINUTE).ToUnixTime().ToString(),
                UserId          = user.Id
            };

            RedisHelper.StringSet(
                Constant.REDIS_PAYMENT_CODE_DBINDEX,
                $"{Constant.REDIS_PAYMENT_CODE_PREFIX}{paymentCode}",
                JsonConvert.SerializeObject(result),
                TimeSpan.FromMinutes(Constant.PAYMENT_CODE_EXPIRE_MINUTE));

            return(result);
        }