Stripe-Metadata 未响应​​(WebHook/.net-core)

Chr*_*oph 5 .net c# stripe-payments .net-core

我正在使用 stripe 进行付款。当我创建 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()}
            },
        };
Run Code Online (Sandbox Code Playgroud)

成功付款后,将调用 Webhook 并检索包含客户数据、价格和其他值的对象,但元数据字典为空。

条带 Webhook 响应

小智 7

您正在检索PaymentIntent由 创建的CheckoutSession,但您正在metadata对其CheckoutSession本身进行设置。

有两个选项,具体取决于您要存储和检索元数据的位置。您可以直接检索CheckoutSession[0],或者更改代码以在创建, 时通过[1]metadata设置。PaymentIntentCheckoutSessionpayment_intent_data.metadata

[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