Coder Social home page Coder Social logo

pagarme-net's Introduction

pagarme-net

Pagar.me .Net Library

Build Status

Support

If you have any problem or suggestion please open an issue here.

License

Check here.

pagarme-net's People

Contributors

andreals avatar caiocanallipagarme avatar chrisenytc avatar dalthon avatar darakeon avatar filipedeschamps avatar greenboxal avatar heyvito avatar irwingmax avatar jonatasmaxi avatar lucaslyoji avatar magnomoreira avatar matheus-maciel avatar murilohns avatar rodrigopgsup avatar sfwill-dev avatar thalesmello avatar theiostream avatar thufik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pagarme-net's Issues

postback pagar.me - c# .netcore 3.1

Bom dia!

Estou precisando acessar a informação da transaction no postback da pagar.me, acontece não estou sabendo fazer e a documentação não me ajudou muito.

estou tentando em uma WebApi no .netcore 3.1.

Alguém saberia me ajudar?

segue um trecho do meu código:

    [HttpPost]
    public IActionResult Post(
            [FromForm] string id,
            [FromForm] string fingerprint,
            [FromForm] string @event,
            [FromForm] string @object,
            [FromForm] string old_status,
            [FromForm] string desired_status,
            [FromForm] string current_status,
            [FromForm] string[] transaction
        )
    {
        GerenciarAuditoria audit = new GerenciarAuditoria();
        IncluirLogAuditoria log = new IncluirLogAuditoria();
        

        try
        {                
            string XHubSignature = Request.Headers["X-Hub-Signature"];

            log.AcaoEvento = "Captura postback Pagar.me";
            log.CodigoUsuario = "system";
            log.DescricaoEvento += " id => " + id;
            log.DescricaoEvento += " transaction => " + transaction.Length; 
            log.DescricaoEvento += " fingerprint => " + fingerprint;
            log.DescricaoEvento += " event => " + @event;
            log.DescricaoEvento += " object => " + @object;
            log.DescricaoEvento += " old_status => " + old_status;
            log.DescricaoEvento += " desired_status => " + desired_status;
            log.DescricaoEvento += " current_status => " + current_status;

            if (audit.IncluirLogAuditoria(log) == false)
            {
                return BadRequest(new
                {
                    Sucess = false,
                    CodigoRetorno = EnumRetorno.NaoPrevisto,
                    Mensagem = audit.MensagemRetorno 
                });
            };

            return Ok(new
            {
                Sucess = true,
                CodigoRetorno = EnumRetorno.Sucesso,
            });
        }
        catch(Exception ex)
        {
            log.AcaoEvento = "Captura postback Pagar.me";
            log.CodigoUsuario = "system";
            log.DescricaoEvento = ex.Message;

            audit.IncluirLogAuditoria(log);

            return BadRequest(new
            {
                Sucess = false,
                CodigoRetorno = EnumRetorno.NaoPrevisto,
                Mensagem = audit.MensagemRetorno
            });
        }

Problema Visual Studio 2015

Projeto: PagarMe.Shared não abre no visual studio 2015 enterprise.

Apresenta seguinte erro: C:\Program Files (x86)\MSBuild\Microsoft\WindowsXaml\v14.0\Microsoft.Windows.UI.Xaml.CSharp.targets

PagarMe.Net40 build failed

Pessoal, estou tentando implementar a integração de vocês em meu serviço web, só que eu uso .NET Framework 4.0 nele.

Estou com alguns erros na hora de executar o build, esses erros indicam que a versão do System.Runtime não satisfaz as dependências do System.Threading.Tasks. Estive pesquisando aqui, mas ainda não consegui chegar em uma solução.

Vocês se depararam com esse problema por aí?

1>------ Rebuild All started: Project: PagarMe.Net40, Configuration: Debug Any CPU ------
1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3268: The primary reference "Microsoft.Threading.Tasks" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "Microsoft.Threading.Tasks" or retarget your application to a framework version which contains "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3268: The primary reference "Microsoft.Threading.Tasks.Extensions" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "Microsoft.Threading.Tasks.Extensions" or retarget your application to a framework version which contains "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3268: The primary reference "Microsoft.Threading.Tasks" could not be resolved because it has an indirect dependency on the framework assembly "System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "Microsoft.Threading.Tasks" or retarget your application to a framework version which contains "System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3268: The primary reference "Microsoft.Threading.Tasks.Extensions" could not be resolved because it has an indirect dependency on the framework assembly "System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "Microsoft.Threading.Tasks.Extensions" or retarget your application to a framework version which contains "System.Threading.Tasks, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\CardHash.cs(95,28,95,56): error CS4001: Cannot await 'System.Threading.Tasks.Task<PagarMe.PagarMeResponse>'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\PagarMeRequest.cs(149,37,149,139): error CS4001: Cannot await 'System.Threading.Tasks.Task<System.IO.Stream>'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\PagarMeRequest.cs(156,46,156,143): error CS4001: Cannot await 'System.Threading.Tasks.Task<System.Net.WebResponse>'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\PagarMeRequest.cs(171,37,171,51): error CS1061: 'System.IO.StreamReader' does not contain a definition for 'ReadToEndAsync' and no extension method 'ReadToEndAsync' accepting a first argument of type 'System.IO.StreamReader' could be found (are you missing a using directive or an assembly reference?)
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\PagarMeRequest.cs(181,49,181,59): error CS0117: 'System.Net.WebRequest' does not contain a definition for 'CreateHttp'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\Model.cs(65,23,65,51): error CS4001: Cannot await 'System.Threading.Tasks.Task<PagarMe.PagarMeResponse>'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\Model.cs(87,13,87,35): error CS4001: Cannot await 'System.Threading.Tasks.Task'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\Model.cs(96,28,96,56): error CS4001: Cannot await 'System.Threading.Tasks.Task<PagarMe.PagarMeResponse>'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\Model.cs(135,32,135,60): error CS4001: Cannot await 'System.Threading.Tasks.Task<PagarMe.PagarMeResponse>'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\Model.cs(145,32,145,60): error CS4001: Cannot await 'System.Threading.Tasks.Task<PagarMe.PagarMeResponse>'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\ModelCollection.cs(86,17,86,45): error CS4001: Cannot await 'System.Threading.Tasks.Task'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\ModelCollection.cs(101,21,101,53): error CS4001: Cannot await 'System.Threading.Tasks.Task<System.Collections.Generic.IEnumerable<TModel>>'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\ModelCollection.cs(111,36,111,85): error CS4001: Cannot await 'System.Threading.Tasks.Task<PagarMe.PagarMeResponse>'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\ModelCollection.cs(111,20,111,86): error CS1502: The best overloaded method match for 'PagarMe.Base.ModelCollection<TModel>.FinishFindQuery(PagarMe.PagarMeResponse)' has some invalid arguments
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Base\ModelCollection.cs(111,36,111,85): error CS1503: Argument 1: cannot convert from 'void' to 'PagarMe.PagarMeResponse'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Transaction.cs(274,13,274,51): error CS4001: Cannot await 'System.Threading.Tasks.Task'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Transaction.cs(288,13,288,51): error CS4001: Cannot await 'System.Threading.Tasks.Task'
1>c:\Users\Gabriel\Desktop\Projetos\frameworks\PagarMe\PagarMe.Shared\Subscription.cs(178,13,178,51): error CS4001: Cannot await 'System.Threading.Tasks.Task'
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

CardHash.GenerateAsync() falha com System.Net.ProtocolViolationException

Após baixar o projeto, coloquei no projeto do Playground o seguinte código:

var cardHash = new CardHash();
cardHash.CardCvv = "000";
cardHash.CardExpirationDate = "0000";
cardHash.CardHolderName = "NOME DO TITULAR";
cardHash.CardNumber = "0000000000000000";
await cardHash.GenerateAsync();

Ao chegar na linha GenerateAsync() estoura a exceção indicando que, em uma requisição onde são passadas informações no corpo, deve ser utilizado o verbo POST em vez de GET.

Stack Trace:

   em System.Net.HttpWebRequest.CheckProtocol(Boolean onRequestStream)
   em System.Net.HttpWebRequest.BeginGetRequestStream(AsyncCallback callback, Object state)
   em System.Threading.Tasks.TaskFactory`1.FromAsyncImpl(Func`3 beginMethod, Func`2 endFunction, Action`1 endAction, Object state, TaskCreationOptions creationOptions)
   em PagarMe.PagarMeRequest.<ExecuteAsync>d__25.MoveNext()
--- Fim do rastreamento de pilha do local anterior onde a exceção foi gerada ---
   em System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   em System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   em PagarMe.CardHash.<GenerateAsync>d__21.MoveNext()
--- Fim do rastreamento de pilha do local anterior onde a exceção foi gerada ---
   em System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   em System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   em System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   em Playground.MainClass.<ObterHashDoCartao>d__2.MoveNext() na C:\Users\rodrigo.lira\Downloads\pagarme-net-master\Playground\Program.cs:linha 144
--- Fim do rastreamento de pilha do local anterior onde a exceção foi gerada ---
   em System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   em System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   em System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   em Playground.MainClass.<Teste>d__1.MoveNext() na C:\Users\rodrigo.lira\Downloads\pagarme-net-master\Playground\Program.cs:linha 129

Unable to cast object of type 'System.Int64' to type 'System.String'.

Exception é lançada quando tento acessar a propriedade Tid de uma Transaction após método Save(), pois o valor (Tid) gerado internamente trata-se de um int e o model que recebe é uma String.

ex:
essa é uma transação que será capturada posteriormente:

PagarMeService.DefaultApiKey = "ak_test_grXijQ4GicOa2BLGZrDRTR5qNQxJW0";

Transaction transaction = new Transaction();

transaction.Amount = 1000;
transaction.CardHash = "CARD_HASH_GERADO";
transaction.ShouldCapture = false,
transaction.Customer = new Customer() {
    Name = "John Appleseed",
    DocumentNumber = "92545278157",
    Email = "[email protected]",
    Address = new Address() {
        Street = "Rua Dr. Geraldo Campos Moreira",
        Neighborhood = "Cidade Monções",
        Zipcode = "04571020",
        StreetNumber = "240"
    },
    Phone = new Phone() {
        Ddd = "11",
        Number = "15510101"
    }
};

transaction.Save();

Neste ponto quero salvar o Tid para fazer a captura depois. Mas no campo Tid ja está a Exception do cast errado e ao tentar usar a propriedade

string Tid = transaction.Tid;

ele quebra.

image

Método assíncrono void

O método RefundAsync da classe Transaction deveria ter um retorno do tipo Task, como no método SaveAsync, para ser possível utilizar o await.

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

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);
        }

CardHash Invalido

Estou gerando o cardhash normalmente, com os dados do meu cartão. mas a transação nao é completada.
Se eu coloco os dados do cartão direto, ai funciona.

O cardhash ta sendo gerado no webview do android utilizando pagarme.js e envio o cardhash pro back end e entao processa. so que nao vai de maneira alguma.

Vou ter que trafegar os dados do cartao do usuario ? Encryptar sei la fazer algo. Porque o hash nao ta rolando.

Podem me ajudar?

Any Transaction Exception

NuGet Pagar.me v2.6.12
WebAPI .net Core 2.2

`public class PagarMeTool : PagarMeService
{
public PagarMeTool(IConfiguration configuration) : base(configuration["Pagar_Me:Key"], configuration["Pagar_Me:Criptography"], configuration["Pagar_Me:EndPoint"])
{
}

    public void CreateCustomer(string aDocumentNumber)
    {
        Customer customer = this.Customers.Find(new Customer() { DocumentNumber = aDocumentNumber });

        if (customer == null)
            CreateCustomer();
    }

    public void CreateCustomer()
    {
        Customer customer = new Customer(this)
        {
            Name = "GuyName",
            Birthday = DateTime.Now.ToString("yyyy-MM-dd"),
            BornAt = DateTime.Now.Date,
            Email = "[email protected]",
            Address = new Address()
            {
                StreetNumber = "10"
            },
            Phone = new Phone()
            {
                Ddi = "55",
                Ddd = "31",
                Number = "987654321"
            },
            Country = "",
            DocumentNumber = "12345678912",
            DocumentType = DocumentType.Cpf,
            ExternalId = "",
            Gender = Gender.Male,
            Type = CustomerType.Individual
        };

        customer.Save();
    }

}`

Any final command throws:

"Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. O sistema não pode encontrar o arquivo especificado."

Atualização no protocolo TLS - Cifras

No dia 6 de setembro de 2022, a PagarMe irá realizar uma atualização no protocolo TLS que tornará indisponível o acesso a algumas cifras. Gostaria de saber se este pacote será afetado de alguma maneira com a mudança?

Cifras que serão descontinuadas:

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
TLS_RSA_WITH_AES_256_GCM_SHA384 (0x9d)
TLS_RSA_WITH_AES_256_CBC_SHA (0x35
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (0xc027)
TLS_RSA_WITH_AES_128_CBC_SHA256 (0x3c)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (0xc028)
TLS_RSA_WITH_AES_256_CBC_SHA256 (0x3d)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
TLS_RSA_WITH_AES_128_GCM_SHA256 (0x9c)
TLS_RSA_WITH_AES_128_CBC_SHA (0x2f)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 (0xc023)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 (0xc024)
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
OLD_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc14)
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9)
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
OLD_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc13)
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)

Estorno Cartão de credito - Status

Olá Pessoal.
Fui realizar um estorno pela API neste momento da seguinte maneira.

var Transacao_ID = PagarMeService.GetDefaultService().Transactions.Find(TR_id.ToString()); Transacao_ID.Refund(); TransactionStatus status = Transacao_ID.Status; ReturnStatus_Payment = status.ToString();

O retorno não voltou o status REFUNDED...ele voltou como PAID.

Entrei na dashboard e o estorno foi feito normalmente, mas o retorno nao veio como refuded.

Alguma sugestão de contornar isso ?

Obrigado

Como adicionar juros ao boleto?

Olá, gostaria de saber como adicionar juros à um boleto vencido em C#, a opção boleto_fine não aparece na chamada do método

[.NET CORE 2.0] PagarMeService.DefaultApiKey não seta api key para envio da request

Notei que vez ou outra estava recebendo erro na linha 45, do arquivo PagarMeRequest.cs

Por vezes, ao realizar o clean da solução o erro parava. Porém, após o último deploy em produção começou a acontecer o erro novamente. Conclusão:

Como solução de contorno fiz a a modificação abaixo que preenche o valor caso venha nulo a chave. Funcionou para mim, mas postei aqui para caso alguém tenha passado por isso no .NET Core.

return query.Select((t) => Uri.EscapeUriString(t.Item1) + "=" + Uri.EscapeUriString(t.Item2 == null ? "SUA API KEY" : t.Item2)).Aggregate((c, n) => c + "&" + n);

Erro ao Salvar Plan informando PaymentMethods

Ao informar o PaymentMethod em Plan e Salvar:
Exemplo:

 var plan = new Plan()
            {
                Name = "Test Plan",
                Days = 30,
                TrialDays = 0,
                Amount = 1099,
                Color = "#787878",
                PaymentMethods = new PaymentMethod[] { PaymentMethod.CreditCard },
            };
plan.Save(); //Erro acontece aqui

Recebo o seguinte erro:
System.InvalidCastException : Não é possível converter um objeto do tipo 'PagarMe.PaymentMethod[]' no tipo 'System.Object[]'.

em PagarMe.Base.AbstractModel.ConvertKey(KeyValuePair2 obj, SerializationType type) em PagarMe.Base.AbstractModel.<>c__DisplayClass21_0.<GetKeys>b__0(KeyValuePair2 x)
em System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext() em System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer`1 comparer)
em PagarMe.Base.AbstractModel.GetKeys(SerializationType type)
em PagarMe.Base.Model.Save()
em PagarMe.Tests.SubscriptionTests.CreateWithPlan() na SubscriptionTests.cs:linha 18

Split Porcentagem Inteiro

Ao fazer um split da transação com porcentagem, não é possível enviar um valor decimal como (7,5%), apenas números inteiros.

Pagar.me não é compatível com .NET Core ou .NetStandard

Olá , as versões de pagar.me e portable.pagar.me ainda não são compatíveis com .netcore ou .netstandard
Vocês pretendem implementar?


Package Pagar.me 2.4.3 is not compatible with netstandard1.4 (.NETStandard,Version=v1.4). Package Pagar.me 2.4.3 supports:

  • net40 (.NETFramework,Version=v4.0)
  • net45 (.NETFramework,Version=v4.5)

Package Pagar.me 2.4.3 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Pagar.me 2.4.3 supports:

  • net40 (.NETFramework,Version=v4.0)
  • net45 (.NETFramework,Version=v4.5)

Package Portable.Pagar.me 2.3.0 is not compatible with netstandard1.4 (.NETStandard,Version=v1.4). Package Portable.Pagar.me 2.3.0 supports: portable-monoandroid10+monotouch10+net45+win+wp8+xamarinios10+xamarinmac20 (.NETPortable,Version=v0.0,Profile=net45+win+wp80+MonoTouch10+MonoAndroid10+xamarinmac20+xamarinios10)

Package Portable.Pagar.me 2.3.0 is not compatible with netcoreapp1.1 (.NETCoreApp,Version=v1.1). Package Portable.Pagar.me 2.3.0 supports: portable-monoandroid10+monotouch10+net45+win+wp8+xamarinios10+xamarinmac20 (.NETPortable,Version=v0.0,Profile=net45+win+wp80+MonoTouch10+MonoAndroid10+xamarinmac20+xamarinios10)

Modo teste

No api de modo teste, esta aceitando qualquer cartao ? mesmo que seja invalido ?
Passei um qualquer aqui e foi.. na hora que é feita a transacao é validado isso ?

Erro ao adicionar recebedor API.

Olá pessoal, estou com um erro que apenas no meu projeto consigo reproduzir..nos outros passa normal.

Recipient RecebedorID= PagarMeService.GetDefaultService().Recipients.Find("re_cjrfr5197007vta6ecksj6cgw");

Quando rodo o codigo acima ele me gera uma excecao dizendo que o valor não pode ser null e destaca o parametro como stringtoescape.

Estou perdido nessa exception.

Obrigado

Recipient Information

Olá

Tenho uma duvida, estou tentando criar o split (transacao) via c# seguindo a documentacao.

Mas aqui fala que tem que usar o campo register information..

Recipient recipient = new Recipient();
recipient.TransferInterval = TransferInterval.Weekly;
recipient.TransferDay = 5;
recipient.TransferEnabled = true;
recipient.BankAccount = banco;

Quando coloco recipient.
nao tem nenhuma opcao pra eu coloca os dados do meu seller (pra quem vai cair o dinheiro)

é Obrigatório esse campo ? como funciona.
Obrigado

Transacao Split Rules

Mesmo atribuindo na transacao o codigo abaixo

transaction.SplitRules = new[]
{
new SplitRule
{
Recipient = RecebedorID,
Percentage = 97,
ChargeProcessingFee = true,
Liable = true
},
new SplitRule
{
Recipient = Principal_ID,
Percentage = 3,
ChargeProcessingFee = false,
Liable = false
}
};

Ele me retorna a exceção " all split rules need a percentage property " quando aciona o transaction.save()

Estava funcionando normal, fui realizar um novo teste e recebi essa exception.
Ontem estava tudo ok

O que pode ser?

Suporte a paginação no retorno de collections de planos e assinaturas

Permitir paginação (count, page) em métodos que retornam collections de planos, assinaturas e outros
Atualmente os endpoints (Ex: GET /pans e /subscriptions ) possuem esse recurso, mas por padrão, retornam apenas os 10 primeiros registros. Desta forma, os métodos do componente pagarme-net, sempre retornam os 10 primeiros e não dispõe da opção de paginar.

Conta Bancaria e Recebedor

Bom dia!

Tem como apagar uma conta bancaria ou modificar ?
contudo também tem como apagar um recebedor ?

Infelizmente criei alguns recebedores na api de testes e nao consigo apagar.

Split Payment tendo eu como recebedor junto com o lojista

Olá, estou desenvolvendo num marketplace e preciso desenvolver o Split Payment onde EU, o dono do sistema, receberei uma porcentagem x de cada compra realizada. Na documentação só encontrei informação sobre como dividir a conta com mais de um lojista, o que não é o meu caso. Por exemplo, quero que quando o usuário fizer uma compra de um produto que custou R$10, o vendedor receba R$9 e eu receba R$1, como se fosse uma comissão! Com esse R$1 indo pro meu saldo da Pagarme.

Tem como fazer isso?

Referencia de Recipient_Id desatualizada

Devido a mudança na interface da transfer, a referência de recipient_id dentro da API foi substituida por "source_type" e "source_id".
Isso impede o pagarme-net de interpretar esses novos parâmetros na resposta da API, e que ele recupere essas informações de transferências anteriores.

Features Disponíveis na API e não presentes no SDK

Descrição:

As features listadas abaixo estão disponíveis na API via rotas, porém ainda não estão presentes no SDK, fazendo com que o cliente necessite implementá-las de seu lado.

Transações

  • Estorno pacial com split
  • Retornando histórico de operações de uma transação
  • Cálculo de parcelas

Clientes

  • Criando um customer

Estornos

  • Retornando estornos

Assinaturas

  • Settle Charges
  • Obtendo transações de uma assinatura

Zipcodes

  • Consulta de CEP

Split rules

  • Retornando uma regra de divisão específica

Chargebacks

  • Retornando chargebacks

Plans

  • Invoice reminder

Regras

Ao desenvolver a feature, mergeá-la no repositório e explicá-la na documentação, você deverá dar a baixa na lista acima para que possa ser mantido um tracking.

Retornar recebíveis com filtros maior, menor e between (<>) usando a SDK

Pessoal,

Identifiquei que o parametro para busca de recebíveis é um objeto do tipo Payable.

Ref.: https://docs.pagar.me/reference#retornando-receb%C3%ADveis

Existe alguma forma de fazer isso utilizando a SDK? Ou ela de fato apenas permite a busca com exatidão dos campos (==)?

Outra dúvida:
Como vocês convertem/iteram o Modelcollection da base model da SDK para uma collection do .NET (list,array etc)? Preciso transformar o retorno do objeto das operações para um objeto DTO que será serializado e mandado para o frontend.

Ref.: https://docs.pagar.me/reference#opera%C3%A7%C3%B5es-de-saldo-de-um-recebedor

Erro ao criar transação do tipo cartão de crédito (campo Billing)

Prezados,
Estou recebendo uma exceção ao tentar salvar uma transação utilizando a biblioteca. O erro informa que o parâmetro "billing" não foi informado (erro de validação). Entretanto, não encontrei na biblioteca (objeto Transaction) nenhum campo para preenchimento desses dados, assim como os "itens do pedido" (campos obrigatórios quando o anti-fraude está ligado).

Como devo proceder para conseguir realizar a transação (cartão de crédito)?

Obrigado.

.Net Core

Alguém se prontifica a fazer uma nova versão pro .Net Core, com o PIX?

Estorno de pagamento via boleto bancário

Olá,

Estou implementando a funcionalidade de estorno de transações. Para as transações pagar com cartão de crédito está funcionando corretamente porém no caso de boleto bancário, onde devo informar os dados da conta para depósito, estou recebendo a mensagem de erro que os dados bancários (bank_account) não estão sendo passados.

Na documentação não consta essa informação para C# e eu já tentei passá-los de várias formas.

Vocês poderiam me passar um exemplo em C# de estorno para boleto bancário?

Obrigado.

Exception of type 'PagarMe.PagarMeException' was thrown (v4 2019-09-01)

Estou sempre recebendo esse erro :
PagarMe.PagarMeException: 'Exception of type 'PagarMe.PagarMeException' was thrown.' no transaction.Save();

Não sei onde está o erro, pois testei exatamente com os parâmetros da DOC (v4 2019-09-01)
https://docs.pagar.me/docs/realizando-uma-transacao-de-cartao-de-credito

			
	    PagarMeService.DefaultApiKey = $"{myAPIKey}";
            PagarMeService.DefaultEncryptionKey = $"{myCryptKey}";

            Transaction transaction = new Transaction();

            transaction.Amount = 100;
            transaction.Card = new Card
            {
                CardHash = $"{cardHash}"
            };

            transaction.Customer = new Customer
            {
                ExternalId = $"{externalId}",
                Name = $"{name}",
                Type = CustomerType.Individual,
                Country = "br",
                Email = $"email",
                Documents = new[]
                {
                new Document{
                Type = DocumentType.Cpf,
                Number = $"{cpf}"
                            }
                },
                PhoneNumbers = new string[]
                {
                    $"{phoneNumber}"
                },
                Birthday = new DateTime(1993, 07, 05).ToString("yyyy-MM-dd")
            };

            transaction.Billing = new Billing
            {
                Name = $"{name}",
                Address = new Address()
                {
                    Country = "br",
                    State = "sp",
                    City = $"{city}",
                    Neighborhood = $"{neighborhood}",
                    Street = $"{street}",
                    StreetNumber = $"{streetNumber}",
                    Zipcode = $"{zipCode}"
                }
            };

            transaction.Item = new[]
            {
                new Item()
                {
                    Id = $"{itemId}",
                    Title = $"{itemTitle}",
                    Quantity = 1,
                    Tangible = false,
                    UnitPrice = 100
                }
            };

            transaction.Save();

Exemplo de código Settando Metadata (tipo AbstractModel)

Sei que não se trata exatamente de uma issue, mas como não existe mais a funcionalidade de mensagem privada para usuários no github e todos os exemplos de código da api docs estão com o parametro metadata nullado, gostaria de pedir que alguém me mostrasse programaticamente como criar uma instancia desta classe para salvar na pagar.me as informações adicinais de uma assinatura que digam respeito ao contexto do sistema integrador.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.