ASP.NET Stripe Connect嵌入式支付:无Account Id无法获取会话求助
关于Stripe Connect嵌入式支付会话获取的问题
我正在使用Stripe Connect为客户提供嵌入式支付解决方案,以下服务器端代码可成功创建结账会话:
var options = new Stripe.Checkout.SessionCreateOptions { LineItems = new List<Stripe.Checkout.SessionLineItemOptions> { new Stripe.Checkout.SessionLineItemOptions { PriceData = new Stripe.Checkout.SessionLineItemPriceDataOptions { Currency = "aud", ProductData = new Stripe.Checkout.SessionLineItemPriceDataProductDataOptions { Name = "Gift Voucher", }, UnitAmount = 30000, }, Quantity = 1, }, }, PaymentIntentData = new Stripe.Checkout.SessionPaymentIntentDataOptions { ApplicationFeeAmount = 110, }, Mode = "payment", UiMode = "embedded", ReturnUrl = "https://localhost:44389/blah/StripeCheckoutReturn", ClientReferenceId = "12345" }; var requestOptions = new RequestOptions { StripeAccount = "abcd..." }; var service = new SessionService(); Session session = service.Create(options, requestOptions); TempData["StripeSession"] = session.Id; return Json(new { clientSecret = session.ClientSecret });
上述代码运行正常,我可在嵌入式Stripe支付表单完成测试支付。
问题出在ReturnUrl端点中尝试获取会话时,以下代码会抛出Stripe异常:no such checkout.session
[HttpGet] [AllowAnonymous] public async Task<ActionResult> StripeCheckoutReturn() { string session_id = TempData["StripeSession"].ToString(); var service = new SessionService(); Session session = service.Get(session_id); if (session.PaymentStatus == "paid") { } }
但如果硬编码Connect Client的账号ID,如下所示,错误消失,可成功获取会话:
[HttpGet] [AllowAnonymous] public async Task<ActionResult> StripeCheckoutReturn() { string session_id = TempData["StripeSession"].ToString(); var requestOptions = new RequestOptions { StripeAccount = "acct_12345..." }; var service = new SessionService(); Session session = service.Get(session_id, requestOptions: requestOptions); if (session.PaymentStatus == "paid") { } }
这让我陷入了两难境地:没有关联的客户账号ID就无法获取会话,但只有获取会话后才能拿到用于与内部系统对账的ClientReferenceId。
我曾向Stripe支持反馈此问题,他们最初回复称问题是未设置ApplicationFeeAmount,但我回复说明已正确设置该金额,且提供客户账号ID时会话可正常解析后,仅收到自动邮件回复,建议我联系Stripe聊天机器人,未获得正式支持工单,且我的Dashboard中也没有管理支持问题的"Support"板块。
内容的提问来源于stack exchange,提问作者Ross Kelly
相关产品推荐
相关产品推荐

