C# 从成功的条带签出重定向

C# 从成功的条带签出重定向,c#,asp.net,stripe-payments,webhooks,generic-handler,C#,Asp.net,Stripe Payments,Webhooks,Generic Handler,我正在使用带C#Net的Stripes支付网关。我首先创建了一个签出,它将用户重定向到Stripe的支付网关(我不想麻烦地维护卡号等,所以通过这种方式它会转发到Stripe以询问卡的详细信息,处理支付等)-这是在代码隐藏中完成的 我将成功URL设置为www.example.com/myHandler.ashx(通用处理程序)-此URL将订单id设置为成功。我的处理程序代码类似于(因为我使用的是通用处理程序,而不是MVC) 成功付款后,付款记录到我的数据库中 考虑到这是一个webhook,我如何显

我正在使用带C#Net的Stripes支付网关。我首先创建了一个签出,它将用户重定向到Stripe的支付网关(我不想麻烦地维护卡号等,所以通过这种方式它会转发到Stripe以询问卡的详细信息,处理支付等)-这是在代码隐藏中完成的

我将成功URL设置为www.example.com/myHandler.ashx(通用处理程序)-此URL将订单id设置为成功。我的处理程序代码类似于(因为我使用的是通用处理程序,而不是MVC)

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


考虑到这是一个webhook,我如何显示/重定向到感谢页面?

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

选项1:
将成功页面与webhook结合起来。这意味着它将向用户显示页面,并在后端更新事务的状态

您的url将如下所示
SuccessUrl=”https://example.com/success?session_id={CHECKOUT\u SESSION\u ID}“

然后使用会话ID处理状态更改,就像处理webhook一样,但将html页面返回给用户(从技术上讲,这不是webhook)。

根据您的问题,可能是
SuccessUrl
提供了一个会话对象作为主体,否则您当前的代码不应该工作,但我不确定

要根据Id获取会话对象,可以再次调用stripe查看:

付款成功后,结帐会话将包含对客户的引用,以及成功的PaymentIntent或活动订阅

选项2:
从感谢页面中单独创建webhook。这意味着
SuccessUrl
将成为您的感谢页面。

webhook需要使用stripe单独和全局定义。您可以在此处查看如何执行此操作:

您的成功URL是用户将重定向到的URL。所以这个页面应该是表示感谢的页面。好的,但是我如何记录这是一个成功的付款并执行数据库任务呢?我可以将处理程序转换为页面,但我认为我没有完全遵循?让我先试试选项1。我提供的用于处理数据库任务的链接显示了stripeEvent.Type==Events.PaymentIntentsAccessed自post请求-我如何获得订单详细信息的访问权限,即,我有会话id,但如何加载要对其采取操作的记录?我将很快看一看,但在深入讨论之前还有一个问题。会话ID必须是成功URL的一部分吗?我正在使用元数据来保存其他数据,所以我可以使用MD来保存会话ID吗?哦,是的,您也应该能够将其放入元数据中。我之所以使用这个例子,是因为它也在官方文档中。我有一个SessionService(来自您提供的链接),但我如何将其与成功付款联系起来,以进一步处理这个问题?以前我有Stripe.PaymentIntent。此外,响应不包括元数据,我需要再打一次电话吗?不确定你的意思?你以前是怎么拿到工资的?你不能让它和以前一样,但是在asp.net中返回一个视图吗?