Esempio n. 1
0
        public static CreateSubscriptionItemRequest ConverteItemNovoDbEmApi(AssinaturaItemDb assinaturaItem)
        {
            try
            {
                var item = new CreateSubscriptionItemRequest
                {
                    Description   = assinaturaItem.Descricao,
                    Cycles        = assinaturaItem.Ciclos,
                    Quantity      = assinaturaItem.Quant,
                    PricingScheme = new CreatePricingSchemeRequest
                    {
                        Price = assinaturaItem.GetValor()
                    }
                };

                return(item);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        internal static CreateSubscriptionItemRequest BuildCreateSubscriptionItemRequest()
        {
            var request = new CreateSubscriptionItemRequest()
            {
                Description   = "Novo item",
                Quantity      = 1,
                PricingScheme = new CreatePricingSchemeRequest()
                {
                    SchemeType    = "volume",
                    PriceBrackets = new List <CreatePriceBracketRequest>()
                    {
                        new CreatePriceBracketRequest()
                        {
                            StartQuantity = 0,
                            Price         = 100
                        }
                    }
                }
            };

            return(request);
        }
Esempio n. 3
0
        public BaseResponse <GetSubscriptionItemResponse> CreateSubscriptionItem(string subscriptionId, CreateSubscriptionItemRequest request)
        {
            var method   = HttpMethod.Post;
            var endpoint = $"/subscriptions/{subscriptionId}/items";

            return(this.HttpClientUtil.SendRequest <GetSubscriptionItemResponse>(method, endpoint, request));
        }
Esempio n. 4
0
        public void ItemIncluirNaAssinatura(AssinaturaDb assinaturaDb, AssinaturaItemDb assinaturaItemDb, CreateSubscriptionItemRequest assinaturaItemApi)
        {
            try
            {
                // Secret key fornecida pela Mundipagg
                string basicAuthUserName = SistemaSingleton.Instancia.TokenApi;
                // Senha em branco. Passando apenas a secret key
                string basicAuthPassword = "";

                var client = new MundiAPIClient(basicAuthUserName, basicAuthPassword);

                var response = client.Subscriptions.CreateSubscriptionItem(assinaturaDb.Id_Api, assinaturaItemApi);

                assinaturaDal.ItemAssinaturaGravadaNaApiAtualizaBanco(assinaturaItemDb.Id.ToString(), response.Id);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Esempio n. 5
0
        public static CreateSubscriptionRequest ConverteAssinaturaDbEmApi(AssinaturaDb assinatura)
        {
            try
            {
                var billinAddress = new CreateAddressRequest
                {
                    Line1   = assinatura.Cliente.Endereco_1,
                    Line2   = assinatura.Cliente.Endereco_2,
                    ZipCode = assinatura.Cliente.Cep,
                    City    = assinatura.Cliente.Cidade,
                    State   = assinatura.Cliente.Uf,
                    Country = "BR"
                };

                var card = new CreateCardRequest
                {
                    HolderName     = assinatura.MeioPagamento.Nome_Cartao,
                    Number         = assinatura.MeioPagamento.Numero_Cartao,
                    ExpMonth       = assinatura.MeioPagamento.Val_Mes,
                    ExpYear        = assinatura.MeioPagamento.Val_Ano,
                    Cvv            = assinatura.MeioPagamento.Cvc,
                    BillingAddress = billinAddress
                };

                // por enquanto não vai trabalhar com descontos
                //var discounts = new List<CreateDiscountRequest> {
                //new CreateDiscountRequest {
                //Cycles = 1,
                //Value = 0,
                //DiscountType = "percentage"
                //}
                //};

                var items = new List <CreateSubscriptionItemRequest>();

                foreach (var item in assinatura.ItensAssinatura)
                {
                    var i = new CreateSubscriptionItemRequest
                    {
                        Description   = item.Descricao,
                        Quantity      = item.Quant,
                        PricingScheme = new CreatePricingSchemeRequest
                        {
                            Price = item.GetValor()
                        }
                    };

                    items.Add(i);
                }

                var metadata = new Dictionary <string, string>
                {
                    { "id", assinatura.Id.ToString() }
                };

                var request = new CreateSubscriptionRequest
                {
                    PaymentMethod = "credit_card",
                    Currency      = "BRL",
                    Interval      = assinatura.Intervalo,
                    IntervalCount = assinatura.Intervalo_Quantidade,
                    BillingType   = "exact_day",
                    BillingDay    = assinatura.Dia_Cobranca,
                    Installments  = assinatura.Quant_Parcelas,
                    Customer      = new CreateCustomerRequest
                    {
                        Name = assinatura.Cliente.Nome,
                        //Email = assinatura.Cliente.Email,
                        Document = assinatura.Cliente.Documento,
                        Code     = assinatura.Cliente.Codigo,
                        Type     = "individual"
                    },
                    Card = card,
                    // Discounts = discounts,
                    Items    = items,
                    Metadata = metadata
                };

                return(request);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }