コード例 #1
0
        internal static CieloPaymentRequest ParsePaymentRequest(Order order)
        {
            var buyerName = MysqlClient.GetUserByIdInMysql(order.BuyerId.ToString()).Name;
            var request   = new CieloPaymentRequest()
            {
                MerchantOrderId = Guid.NewGuid().ToString(),
                CustomerObj     = new CieloPaymentRequest.Customer()
                {
                    Name = buyerName
                },
                PaymentObj = new CieloPaymentRequest.Payment()
                {
                    Type         = "CreditCard",
                    Capture      = true,
                    Amount       = order.Value,
                    Installments = 1,
                    CreditCard   = new CieloPaymentRequest.CreditCard()
                    {
                        CardNumber     = order.CardNumber,
                        Holder         = buyerName,
                        ExpirationDate = order.ExpirationDate,
                        SecurityCode   = order.SecurityCode
                    }
                }
            };

            return(request);
        }
コード例 #2
0
        public static CieloPaymentResponse PostPayment(Order order)
        {
            using (var cancellationToken = new CancellationTokenSource(TimeSpan.FromMilliseconds(20000)))
            {
                try
                {
                    var user = MysqlClient.GetUserByIdInMysql(order.OwnerId.ToString());

                    var endpoint = $"{CieloSandboxPostUrl}/1/sales/";

                    var request = ParsePaymentRequest(order);

                    Console.WriteLine($"Request to: {endpoint}");

                    using (var httpClient = new HttpClient())
                    {
                        httpClient.Timeout = TimeSpan.FromMilliseconds(15000);

                        var requestContent = new StringContent(JsonConvert.SerializeObject(request));

                        requestContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                        requestContent.Headers.Add("MerchantId", user.Payment_id);
                        requestContent.Headers.Add("MerchantKey", user.Payment_key);

                        var response = httpClient.PostAsync(endpoint, requestContent, cancellationToken.Token).Result;

                        string content = response.Content.ReadAsStringAsync().Result;

                        Console.WriteLine($"Response: {content}");

                        response.EnsureSuccessStatusCode();

                        return(JsonConvert.DeserializeObject <CieloPaymentResponse>(content));
                    }
                }
                catch (Exception ex)
                {
                    var message = $"Error on trying send payment: {ex.Message} InnerException: {ex.InnerException}";
                    Console.WriteLine(message);
                }
                return(null);
            }
        }