Exemple #1
0
        public static void WriteResult(NewTransactionResponse response)
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("");

            Console.WriteLine("Done!");

            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine("");
            Console.WriteLine("");
            Console.WriteLine("Status".PadRight(25, ' ') + $": {response.Status}");
            Console.WriteLine("Tid".PadRight(25, ' ') + $": {response.Tid}");
            Console.WriteLine("PaymentId".PadRight(25, ' ') + $": {response.PaymentId}");
            Console.WriteLine("AuthorizationCode".PadRight(25, ' ') + $": {response.AuthorizationCode}");
            Console.WriteLine("Return Code".PadRight(25, ' ') + $": {response.ReturnCode}");
            Console.WriteLine("Return Message".PadRight(25, ' ') + $": {response.ReturnMessage}");
            Console.WriteLine("ProofOfSale".PadRight(25, ' ') + $": {response.ProofOfSale}");
            Console.WriteLine("MerchantOrderId".PadRight(25, ' ') + $": {response.MerchantOrderId}");
            Console.WriteLine("AuthenticationUrl".PadRight(25, ' ') + $": {response.AuthenticationUrl}");
            Console.WriteLine("");
            Console.WriteLine("");

            Console.ForegroundColor = ConsoleColor.Gray;
        }
        public async Task <IActionResult> NewTask([FromBody] NewTaskRequest request)
        {
            var client = getCacheClient();

            var requestId           = RandomGenerator.GenerateToken();
            var postMerchantContent = new
            {
                price = REQUEST_PRICE
            };

            var postMerchantResponse = HttpHelper.PostToMerchantAsync("/api/transaction/new", postMerchantContent);
            var getChallengeResponse = HttpHelper.GetFromChallengeAsync("/ChallengeMe");

            NewTransactionResponse merchantResult  = JsonConvert.DeserializeObject <NewTransactionResponse>(await postMerchantResponse);
            NewChallengeResponse   challengeResult = JsonConvert.DeserializeObject <NewChallengeResponse>(await getChallengeResponse);

            var requestDetails = new RequestDetails(requestId, merchantResult.TransactionId, request.Method);

            var ttl   = RandomGenerator.GenerateTTL();
            var added = client.Add(REQUEST_PREFIX + requestId, requestDetails, ttl);

            if (!added)
            {
                return(BadRequest("Cache error"));
            }

            var response = new NewTaskResponse(requestId, merchantResult.TransactionId, challengeResult.Header, challengeResult.Target);

            return(Ok(response));
        }
Exemple #3
0
        /// <summary>
        /// Добавить новую транзакцию в блок, POST запрос
        /// </summary>
        /// <param name="transaction">Транзакция</param>
        public static NewTransactionResponse NewTransaction(Transaction transaction)
        {
            WebRequest request = WebRequest.Create("http://localhost:12345/transactions/new");

            request.Method = "POST";

            var data = JsonConvert.SerializeObject(transaction);

            byte[] byteArray = Encoding.UTF8.GetBytes(data);

            request.ContentType = "application/x-www-form-urlencoded";

            request.ContentLength = byteArray.Length;

            var result = new NewTransactionResponse();

            try
            {
                using (Stream dataStream = request.GetRequestStream())
                {
                    dataStream.Write(byteArray, 0, byteArray.Length);
                }

                WebResponse response = request.GetResponseAsync().Result;

                using (Stream stream = response.GetResponseStream())
                {
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        result.Message = reader.ReadToEnd();
                    }
                }

                response.Close();

                return(result);
            }
            catch (WebException ex)
            {
                result.Errors = new List <string>();

                result.Errors.Add($"{ex.Message} [{ex.Status}]");

                return(result);
            }
        }
        public IActionResult Post([FromBody] NewTransactionRequest request)
        {
            var client = getCacheClient();

            var transactionId         = RandomGenerator.GenerateToken();
            var newTransactionDetails = new NewTransactionDetails(transactionId, request.Price);

            var ttl   = RandomGenerator.GenerateTTL();
            var added = client.Add(NEW_REQUEST_PREFIX + transactionId, newTransactionDetails, ttl);

            if (!added)
            {
                return(BadRequest("Cache error"));
            }

            var response = new NewTransactionResponse(transactionId);

            return(Ok(response));
        }