public async Task <IActionResult> ProcessPaymentAsync(string nonce) { try { Square.Environment environment = appSettings.Environment == "sandbox" ? Square.Environment.Sandbox : Square.Environment.Production; // Build base client SquareClient client = new SquareClient.Builder() .Environment(environment) .AccessToken(this.appSettings.AccessToken) .Build(); IPaymentsApi PaymentsApi = client.PaymentsApi; CreatePaymentRequest request_body = new CreatePaymentRequest(nonce, this.NewIdempotencyKey(), new Money(100, "USD")); CreatePaymentResponse responce = await PaymentsApi.CreatePaymentAsync(request_body); if (responce?.Payment?.Status == "COMPLETED") { //this.UpdateCart(new CartModel()); return(this.Ok()); } else { return(this.BadRequest($"STATUS: {responce?.Payment?.Status}")); } } catch (Exception ex) { return(this.BadRequest($"PaymentError: { ex.Message }")); } }