c# - 从成功的条带结帐重定向
问题描述
我正在使用带有 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,我如何显示/重定向到感谢页面?
解决方案
你有不止一种方法来解决这个问题。
选项 1:
将成功页面与您的 webhook 结合起来。这意味着它将向用户显示页面并在后端更新事务的状态。
您的 url 看起来像这样
SuccessUrl = "https://example.com/success?session_id={CHECKOUT_SESSION_ID}"
然后使用会话 ID 来处理状态更改,就像您使用 webhook 一样,但将 html 页面返回给用户(从技术上讲,这不是 webhook)。
根据您的问题,可能会将SuccessUrl
会话对象作为主体,否则您当前的代码将无法正常工作,但我不确定。
要根据 Id 获取会话对象,您可以再次调用 stripe,请参阅: https ://stripe.com/docs/api/checkout/sessions/retrieve#retrieve_checkout_session
付款成功后,结帐会话将包含对客户的引用,以及成功的 PaymentIntent 或有效的订阅。
选项 2:
与感谢页面分开创建一个 webhook。这意味着这SuccessUrl
将是您的感谢页面。
webhook 需要使用条带单独和全局定义。您可以在这里查看这是如何完成的:https ://stripe.com/docs/webhooks/configure
推荐阅读
- c# - 在整个应用程序中共享一个 Random 的卫生方式
- cmake - 如何将 CMake 和 CPack 与覆盖我的变量的依赖项一起使用?
- rust - String::from_utf8_lossy() 是否分配内存?
- php - 多个值数组php - Mssql
- postman - Postman - 在两者之间添加参数
- typescript - 如何使标准在 Type Script 中工作
- excel - 如何使用 laravel excel(导入)跳过空白行
- python - 在 Pandas 中将 colum1 值与 colum2 合并,col 数据类型都是对象,并且第一列中只有少数值是空的?
- angular - 以角度导入 css url 时出现错误“expectedcss(css-rparentexpected)”
- outlook - Outlook Web 插件问题