pagarme / pagarme-net

Pagar.me .NET library
MIT License
42 stars 49 forks source link

Exceção do tipo 'PagarMe.PagarMeException' foi acionada #116

Open fernandopaiva opened 5 years ago

fernandopaiva commented 5 years ago

Estou tentando enviar um teste de pagamento com o PagarMe para C# mas sempre retorna o erro. Estou seguindo os exemplos do site, porém, ainda não tive resultados.

Exceção do tipo 'PagarMe.PagarMeException' foi acionada.

Como resolver isso ?

//efetua pagamento
        public JsonResult FinalizaVenda(PagarMeModel model){
            try{

                PagarMeService.DefaultApiKey = PagarMeCfg.PAGARME_API_KEY_TESTE;
                PagarMeService.DefaultEncryptionKey = PagarMeCfg.PAGARME_CRIPTO_KEY_TESTE;

                //cria transacao
                Transaction transaction = new Transaction();
                transaction.Amount = 5490;

                //cartao credito
                CardHash cartao = new CardHash();
                cartao.CardNumber = model.numCartao;
                cartao.CardHolderName = model.nomePropCartao;
                cartao.CardExpirationDate = model.mesVencimento + model.anoVencimento;                
                cartao.CardCvv = model.cvv;
                transaction.CardHash = cartao.Generate(); //gera o hash do cartao

                //cliente
                Customer customer = new Customer();
                customer.Name = model.nomeComprador;
                customer.Type = CustomerType.Individual;
                customer.Email = model.emailComprador;
                transaction.Customer = customer;

                //documentos cliente
                transaction.Customer.Documents = new[]{
                    new Document(){
                        Type = DocumentType.Cpf,
                        Number = model.cpfComprador,
                    }
                };

                //telefone cliente
                transaction.Customer.PhoneNumbers = new string[]{
                    model.codAreaTelPropCartao + model.telFonePropCartao
                };

                //aniversario cliente
                transaction.Customer.Birthday = model.nascimentoPropCartao;

                //billing
                transaction.Billing = new Billing{
                    Name = "Fernando Paiva",
                    Address = new Address(){
                        Country = "br",
                        State = "sp",
                        City = "Ituverava",
                        Neighborhood = "Cecap",
                        Street = "Rua 38",
                        StreetNumber = "222",
                        Zipcode = "14444000"
                    }
                };

                //item
                transaction.Item = new[]{
                    new Item(){
                        Id = "0001",
                        Title = "Pacote de acesso de 30 dias",
                        Quantity = 1,
                        Tangible = false,
                        UnitPrice = 5490
                    }
                };                

                //realiza transacao
                transaction.Save();               

                //retorno json
                jsonResposta.Add("status", "1");
                jsonResposta.Add("msg", "Transação realizada com sucesso!");

            }catch (PagarMeException e){
                jsonResposta.Add("status", "0");
                jsonResposta.Add("msg", e.Message);
                Debug.WriteLine("Erro de Pagamento: " + e.Message);         
            }

            return Json(jsonResposta);
        }
fernandopaiva commented 5 years ago

Resolvido.

Estava faltando os parametros "ExternalId" e "Country" no Customer. Adicionei esses parametros e funcionou blzinha.

Agradeço ao suporte do Pagar.me que me auxiliou prontamente.