ASP. Net Core parse Stripe Webhook JSON Ответ - PullRequest
0 голосов
/ 09 июля 2020

Я работаю с Stripe / Stripe. net Webhooks в моем ASP. Net Core приложении. Я пытаюсь сопоставить объект, где я могу использовать свойства, возвращенные из ответа Webhook JSON, и сохранить различные свойства в моей базе данных. Используя Postman, я могу получить образец JSON, который я получил от веб-перехватчиков Stripe test в моем методе контроллера, и проанализировать 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 с моделью, но я не могу получить доступ к ChildrenTokens через C#. Есть ли способ сопоставить эти свойства?

1 Ответ

1 голос
/ 09 июля 2020

Уловка здесь состоит в том, чтобы привести stripeEvent.Data.Object в качестве определенного c класса, который должны представлять базовые данные события. Как правило, у вас есть оператор switch или if, проверяющий stripeEvent.Type.

Например, если тип события - payment_intent.succeeded, то базовыми данными будет PaymentIntent, и у вас может быть следующий код для проверки типа, а затем приведение к этому типу.

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

Отсюда вы можете взаимодействовать с paymentIntent и связанными с ним свойствами.

...