Stripe Connect 直接充电 .Net MVC

问题描述 投票:0回答:1

我目前正在开展概念验证项目,在该项目中,我需要使用 Stripe 的 Connect 直接收费功能在付款时对连接的帐户进行收费。我对支付网关没有太多经验,但我设法在我的 Stripe 帐户和应用程序之间建立连接并成功收到付款。然而,我很难实现直充功能。

我已遵循this文档,其中我使用 Stripe 托管的页面向客户收费。但是,当我单击应该将我带到托管页面的按钮时,没有任何反应,并且我的解决方案上出现空白屏幕。

这是一项无法正常工作并给我带来空白屏幕的直接收费。

var options = new Stripe.Checkout.SessionCreateOptions
{
    LineItems = new List<Stripe.Checkout.SessionLineItemOptions>
    {
    new Stripe.Checkout.SessionLineItemOptions
        {
                PriceData = new Stripe.Checkout.SessionLineItemPriceDataOptions
                    {
                    Currency = "gbp",
                    ProductData = new Stripe.Checkout.SessionLineItemPriceDataProductDataOptions
                    {
                        Name = "T-shirt",
                    },
                    UnitAmount = 1000,
                },
                Quantity = 1,
            },
    },
    PaymentIntentData = new Stripe.Checkout.SessionPaymentIntentDataOptions
    {
        ApplicationFeeAmount = 123,
    },
    Mode = "payment",
    SuccessUrl = "https://example.com/success?session_id={CHECKOUT_SESSION_ID}",
};
var requestOptions = new RequestOptions
{
    StripeAccount = "ACCOUNTID",
};

var service = new Stripe.Checkout.SessionService();
service.Create(options, requestOptions);

return new StatusCodeResult(303);

我的这段代码运行完美,没有任何问题。带我进入 Stripe 托管的支付页面

public IActionResult CheckOut(ProductViewModel product)
{

    var domain = "http://localhost:5184/";

    var options = new Stripe.Checkout.SessionCreateOptions
    {
        SuccessUrl = domain + $"CheckOut/Confirm",
        CancelUrl = domain + $"CheckOut/Cancel",
        LineItems = new List<Stripe.Checkout.SessionLineItemOptions>
        {
        new Stripe.Checkout.SessionLineItemOptions
            {
                    PriceData = new Stripe.Checkout.SessionLineItemPriceDataOptions
                        {
                        Currency = "gbp",
                        ProductData = new Stripe.Checkout.SessionLineItemPriceDataProductDataOptions
                        {
                            Name = "T-shirt",
                        },
                        UnitAmount = 1000,
                    },
                    Quantity = 1,
                },
        },
        Mode = "payment"

    };

    var service = new Stripe.Checkout.SessionService();
    Stripe.Checkout.Session session = service.Create(options);

    Response.Headers.Add("Location", session.Url);
    return new StatusCodeResult(303);

}
c# .net asp.net-mvc stripe-payments payment-gateway
1个回答
0
投票

我找到了解决方案。我需要在代码末尾添加。

Response.Headers.Add("位置", session.Url);

© www.soinside.com 2019 - 2024. All rights reserved.