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