matmiranda / wirecard-dotnet

🚾 - API do Wirecard para .NET - SDK
https://dev.wirecard.com.br/
MIT License
2 stars 1 forks source link

Erro ao deserializar JSON com Utilities.DeserializeWebHook #27

Closed robsonc closed 4 years ago

robsonc commented 5 years ago

Os relatórios de erros devem incluir:

  1. Versão do Visual Studio:

    • [ ] VS2012
    • [ ] VS2015
    • [ ] VS2017
    • [x] VS2019
    • [ ] Outra versão do Visual Studio
  2. Tipo de plataforma:

    • [ ] .NET Core
    • [x] .NET Framework
    • [ ] Xamarin.iOS
    • [ ] Xamarin.Mac
    • [ ] Xamarin.Android
    • [ ] Windows Phone
    • [ ] Universal Windows Platform
    • [ ] Outro tipo de plataforma
  3. Versão da plataforma: 4.6.1

  4. Escreva detalhadamente o problema:

Boa tarde pessoal,

Estou recebendo o JSON dos eventos do webhook, e quando uso o método Utilities.DeserializeWebHook o nó do Resource não vem preenchido corretamente.

O evento em questão é o plan.inactivated e o trecho do código que estou usando segue abaixo.

Stream req = Request.InputStream;
req.Seek(0, System.IO.SeekOrigin.Begin);
string json = new StreamReader(req).ReadToEnd();
var response = Utilities.DeserializeWebHook(json);
matmiranda commented 5 years ago

@robsonc consegue passar o código completo do webhook ?

robsonc commented 5 years ago

O código completo por enquanto é esse

using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Wirecard;
using Wirecard.Models;

namespace Site.Controllers
{
    public class PagamentosController : Controller
    {
        [HttpPost]
        public ActionResult Wirecard()
        {
            var token = Request.Headers["Authorization"];
            //configurado na conta do wirecard
            if (token != "242342as8d8a7s6da8sd8asd8asd76")
            {
                return new HttpStatusCodeResult(400);
            }

            Stream req = Request.InputStream;
            req.Seek(0, System.IO.SeekOrigin.Begin);
            string json = new StreamReader(req).ReadToEnd();

            var response = Utilities.DeserializeWebHook(json);

            return new HttpStatusCodeResult(200);
        }
    }
}
matmiranda commented 5 years ago

@robsonc digo o retorno da Wirecard, o código json.

robsonc commented 5 years ago

O json de retorno é esse aqui, mas em todos retornos que eu testei o Resource tem vindo preenchido errado.

{  
   "date":"22/05/2018 16:05:09",
   "env":"sandbox",
   "event":"plan.inactivated",
   "resource":{  
      "code":"plan101"
   }
}
matmiranda commented 5 years ago

@robsonc nova versão disponível aqui.

E também foi adicionado no teste unitário aqui.