pagarme / pagarme-net

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

postback pagar.me - c# .netcore 3.1 #162

Open igorbasso opened 1 year ago

igorbasso commented 1 year ago

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