/// <summary>
        ///  Инициирует платёжную сессию
        /// </summary>
        /// <param name="orderId"></param>
        /// <param name="description"></param>
        /// <param name="amount"></param>
        /// <param name="email"></param>
        /// <param name="successUrl"></param>
        /// <param name="failUrl"></param>
        /// <returns></returns>
        public static TinkoffPaymentOperationResult SendPayment(string orderId, string description, int amount, string email, string successUrl, string failUrl)
        {
            var    byteArray = GetDataBytes(orderId, description, amount, email, successUrl, failUrl);
            string response;

            try
            {
                response = GetResponse(TinkoffMethodInitName, byteArray);
            }
            catch (Exception e)
            {
                return(new TinkoffPaymentOperationResult(TinkoffPaymentResult.Error, $"{e.Message}"));
            }

            InitRequestJsonResult initResult = JsonConvert.DeserializeObject <InitRequestJsonResult>(response);

            if (initResult.Success)
            {
                return(new TinkoffPaymentOperationResult(TinkoffStatusToTinkoffPaymentResult(initResult.Status), initResult.PaymentUrl, initResult.PaymentId));
            }

            return(new TinkoffPaymentOperationResult(TinkoffPaymentResult.Failure, $"ErrorCode:{initResult.ErrorCode}, Details:{initResult.Details}, Message:{initResult.Message}"));
        }
        /// <summary>
        /// Возвращает текуший статус платежа
        /// </summary>
        /// <param name="paymentId"></param>
        /// <returns></returns>
        public static TinkoffPaymentOperationResult CheckPaymentStatus(int paymentId)
        {
            var    byteArray = GetDataBytes(paymentId);
            string response;

            try
            {
                response = GetResponse(TinkoffMethodGetStateName, byteArray);
            }
            catch (Exception e)
            {
                return(new TinkoffPaymentOperationResult(TinkoffPaymentResult.Error, $"{e.Message}"));
            }

            InitRequestJsonResult initResult = JsonConvert.DeserializeObject <InitRequestJsonResult>(response);

            if (initResult.Success)
            {
                return(new TinkoffPaymentOperationResult(TinkoffStatusToTinkoffPaymentResult(initResult.Status), initResult.Message));
            }

            return(new TinkoffPaymentOperationResult(TinkoffPaymentResult.Failure,
                                                     $"ErrorCode:{initResult.ErrorCode}, Details:{initResult.Details}, Message:{initResult.Message}"));
        }