从成功的条带结帐重定向

Redirect from successful stripe checkout

我正在使用带 C# .Net 的 Stripes 支付网关。我开始创建一个结帐,将用户重定向到 Stripe 的支付网关(我不想维护卡号等的麻烦,所以这样它转发到 Stripe 以询问卡详细信息,处理付款等)https://stripe.com/docs/payments/checkout/one-time - 这是在代码隐藏中完成的。

我将成功 URL 设置为 www.example.com/myHandler.ashx(通用处理程序)- 此 URL 将订单 ID 设置为成功。我的处理程序代码类似于 https://stripe.com/docs/webhooks/build(因为我使用的是通用处理程序,所以我使用的是表单而不是 MVC)

付款成功后,付款记录到我的数据库中。

考虑到这是一个 webhook,我如何 display/redirect 到感谢页面?

解决这个问题的方法不止一种。

选项 1:
将成功页面与您的 webhook 相结合。这意味着它将向用户显示页面并更新后端的交易状态。

你的 url 看起来像这样
SuccessUrl = "https://example.com/success?session_id={CHECKOUT_SESSION_ID}"
然后使用会话 ID 来处理状态更改,就像您使用 webhook 一样,但是 return 用户的 html 页面(从技术上讲,这不是 webhook)。

根据您的问题,可能是 SuccessUrl 将会话对象作为正文,否则您当前的代码将无法正常工作,但我不确定。

要根据 Id 获取会话对象,您可以再次调用 stripe 查看: https://stripe.com/docs/api/checkout/sessions/retrieve#retrieve_checkout_session

Once payment is successful, the Checkout Session will contain a reference to the Customer, and either the successful PaymentIntent or an active Subscription.

选项 2:
从您的致谢页面单独创建一个 webhook。这意味着 SuccessUrl 将是您的感谢页面。
webhook 需要用 stripe 单独全局定义。您可以在此处查看如何完成此操作:https://stripe.com/docs/webhooks/configure