C# ASP.Net核心解析条带Webhook JSON响应

C# ASP.Net核心解析条带Webhook JSON响应,c#,json,asp.net-core,stripe-payments,webhooks,C#,Json,Asp.net Core,Stripe Payments,Webhooks,我正在ASP.net核心应用程序中使用Stripe/Stripe.net Webhooks。我试图映射一个对象,在这里我可以使用从Webhook JSON响应返回的属性,并将各种属性保存到我的数据库中。通过使用Postman,我能够在控制器方法中接收从Stripe test webhooks获得的样本JSON,并使用 var json = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync(); Event stripe

我正在ASP.net核心应用程序中使用Stripe/Stripe.net Webhooks。我试图映射一个对象,在这里我可以使用从Webhook JSON响应返回的属性,并将各种属性保存到我的数据库中。通过使用Postman,我能够在控制器方法中接收从Stripe test webhooks获得的样本JSON,并使用

var json = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync();
Event stripeEvent = EventUtility.ParseEvent(json);
返回:

stripeEvent = {<Stripe.Event@2269235 id=evt_00000000000000> JSON: {"id": "evt_00000000000000", "object": "event", "account": null, "api_version": "2020-03-02", "created": 1326853478, "data": {    "object": { "id": "ch_00000000000000", "...
stripeEvent={JSON:{“id”:“evt_0.00000000000000”,“object”:“event”,“account”:null,“api_version”:“2020-03-02”,“created”:1326853478,“data”:{“object”:{“id”:“ch_0.00000000”,“。。。

我需要将JSON从RawObject ChildrenTokens映射到一个模型中,但我无法通过C#访问ChildrenTokens。有没有办法映射这些属性?

这里的技巧是将
stripeEvent.Data.Object
转换为底层事件数据应该表示的特定类。通常,您需要将有一个开关或if语句检查
stripeEvent.Type

例如,如果事件的类型是
payment\u intent.successed
,则基础数据将是PaymentIntent,您可以使用以下代码检查该类型,然后转换为该类型

if (stripeEvent.Type == Events.PaymentIntentSucceeded)
{
  var paymentIntent = stripeEvent.Data.Object as PaymentIntent;
}

从那里,您可以与
paymentIntent
及其相关属性进行交互。

这里的技巧是将
StripeeEvent.Data.Object
转换为底层事件数据应该表示的特定类。通常,您会有一个开关或if语句来检查
StripeeEvent.Type

例如,如果事件的类型是
payment\u intent.successed
,则基础数据将是PaymentIntent,您可以使用以下代码检查该类型,然后转换为该类型

if (stripeEvent.Type == Events.PaymentIntentSucceeded)
{
  var paymentIntent = stripeEvent.Data.Object as PaymentIntent;
}

从那里,您可以与
paymentIntent
及其相关属性进行交互。

是否可以检查此线程以查看其是否有用:在回答中,访问StripeeEvent.Data.Object,并通过它访问CustomerId。您是否可以检查此线程以查看其是否有用:在回答中,访问StripeeEvent.Data.Object通过它,可以访问CustomerId。谢谢!这正是我要找的。嗨,bcedergren,我在这里写作不是为了发布答案。这已经完成了。但是我有一个问题。也许你能为我提供答案。请查看一下我试图在webhook帖子中访问我的数据库,但是
var currentUser=wait\u使用rManager.GetUserAsync(HttpContext.User);
返回null谢谢!这正是我想要的。嗨,bcedergren,我在这里写作不是为了发布答案。这已经完成了。但是我有一个问题。也许你已经为我找到了答案。请查看一下我试图在webhook帖子中访问我的数据库,但是
var currentUser=wait\u userManager.GetUserAsync(HttpContext.User);
返回空值