Esempio n. 1
0
        public void AlteraCartaoEmAssinatura(string id_Api, CreateCardRequest cartaoApi, string idCartaoDb)
        {
            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 assinaturaApi = new UpdateSubscriptionCardRequest
                {
                    Card = cartaoApi
                };

                var response = client.Subscriptions.UpdateSubscriptionCard(id_Api, assinaturaApi);

                var cartaoDal = new CartaoDal();

                cartaoDal.CartaoGravadoNaApiAtualizaBanco(idCartaoDb, response.Card.Id);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Esempio n. 2
0
        public BaseResponse <GetSubscriptionResponse> UpdateSubscriptionCard(string subscriptionId, UpdateSubscriptionCardRequest request)
        {
            var method   = new HttpMethod("PATCH");
            var endpoint = $"/subscriptions/{subscriptionId}/card";

            return(this.HttpClientUtil.SendRequest <GetSubscriptionResponse>(method, endpoint, request));
        }
Esempio n. 3
0
        public static GetSubscriptionResponse UpdateSubscriptionCard(JObject data)
        {
            try
            {
                string customerID = (string)data?["cliente_id"];

                if (string.IsNullOrEmpty(customerID))
                {
                    throw new FormatException("Cliente invalido");
                }

                var cards = Client.Customers.GetCards(customerID);

                if (cards.Data.Count == 0)
                {
                    throw new InvalidOperationException("Cartão inexistente.");
                }

                string number           = (string)data?["cartao"]?["numero"];
                int    expiration_Month = (int)data?["cartao"]?["expiracao_mes"];
                int    expiration_Year  = (int)data?["cartao"]?["expiracao_ano"];
                string cvv = (string)data?["cartao"]?["cvv"];

                var card = cards.Data[0];

                var createCard = new CreateCardRequest
                {
                    Number     = number,
                    HolderName = card.HolderName,
                    ExpMonth   = expiration_Month,
                    ExpYear    = expiration_Year,
                    Cvv        = cvv
                };

                var updateCard = new UpdateSubscriptionCardRequest
                {
                    Card = createCard,
                };

                var subscriptions = Client.Subscriptions.GetSubscriptions(null, null, null, null, customerID);
                var subscription  = subscriptions.Data.Find(s => s.Card.Id.Equals(card.Id));

                if (subscriptions == null)
                {
                    throw new InvalidOperationException("Não existem assinaturas para este cliente.");
                }

                var sub = Client.Subscriptions.UpdateSubscriptionCard(subscription.Id, updateCard);

                if (string.IsNullOrEmpty(sub.Id))
                {
                    throw new InvalidOperationException("Falha ao atualizar assinatura.");
                }

                return(sub);
            }
            catch (APIException ex)
            {
                throw new InvalidOperationException("Falha ao atualizar assinatura.", ex);
            }
        }