ASP.Net核心解析Stripe Webhook JSON响应



我正在ASP.net Core应用程序中使用Stripe/Stripe.net Webhook。我正在尝试映射一个对象,在那里我可以使用Webhook JSON响应返回的属性,并将各种属性保存到我的数据库中。使用Postman,我可以在Controller方法中接收从Stripe测试webhook获得的示例JSON,并使用解析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", "...

我需要将JSON从RawObject ChildrenTokens映射到一个模型中,但我无法通过C#访问ChildrenToken。有什么方法可以映射这些属性吗?

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

例如,如果事件的类型是payment_intent.succeeded,那么基础数据将是PaymentIntent,您可能需要以下代码来检查该类型,然后强制转换为该类型。

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

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

最新更新