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); }