Stripe-Metadata не отвечает (WebHook / .net -core) - PullRequest
0 голосов
/ 22 марта 2020

Я использую полосу для платежей. Когда я создаю объект SessionCreateOptions, я добавляю CustomerId и ProductId для последующего использования в моем Webhook.

 var options = new SessionCreateOptions
        {
            PaymentMethodTypes = new List<string> {
                "card",
            },
            CustomerEmail = buyer.Email,
            LineItems = new List<SessionLineItemOptions> {
                new SessionLineItemOptions {
                    Name = packages.First().Name,
                    Description = packages.First().Description,
                    Amount = (long)(totalAmount * 100),
                     Currency = "eur",
                    Quantity = 1,
               },
            },
            SuccessUrl = appSettings.RedirectHost.Url + "/Checkouts/Show/success?session_id={CHECKOUT_SESSION_ID}",
            CancelUrl = appSettings.RedirectHost.Url + "/Checkouts/Show/failed",
            Metadata = new Dictionary<String, String>()
            {
                 { "CustomerId", buyer.Id.ToString()},
                 { "ProductId", packages.First().Id.ToString()}
            },
        };

После успешной оплаты вызывается webhook и получает объект с данными клиента, ценой и другими значениями, но словарь метаданных пуст.

stripe webhook response

1 Ответ

1 голос
/ 22 марта 2020

Вы извлекаете PaymentIntent, созданный CheckoutSession, но вы устанавливаете metadata для самого CheckoutSession.

Существует два варианта, в зависимости от того, где вы хотите сохранить и получить метаданные. Вы можете получить CheckoutSession напрямую [0] или изменить свой код, чтобы установить metadata на PaymentIntent при создании CheckoutSession через payment_intent_data.metadata [1].

[ 0] https://stripe.com/docs/api/checkout/sessions/retrieve

[1] https://stripe.com/docs/api/checkout/sessions/create#create_checkout_session -payment_intent_data-metadata

...