当前位置: 首页 > 知识库问答 >
问题:

SaaS应用程序在完成注册前使用条纹收费客户卡?

邰英毅
2023-03-14

我们正在使用Stripe订阅来处理我们正在构建的SaaS应用程序的付款

目前,我们的开发团队已经实现了以下逻辑:

>

如果Stripe Elements认为信用卡有效,我们的应用程序注册过程将成功完成。

顾客

我们的服务器从stripe处理webhook,以确认初始支付是否成功/失败

我们的问题是,直到我们应用程序的注册过程完成后,客户卡才会被收取费用。在某些情况下,这会导致用户体验不佳,我们的注册过程告诉用户他们已经注册成功,如果条纹收费不成功,他们会收到来自我们软件的“支付失败”电子邮件。

处理注册流的最佳方式是什么?由于我们依赖stripe webhook来告诉我们收费是否成功,因此建议我们可以监控webhook响应(例如,每1秒循环一次),并在完成用户注册我们的应用程序之前确认付款成功。然后,流程将变成:

>

如果Stripe元素认为信用卡有效,我们将创建Stripe客户/订阅

监视(在循环中)来自Stripe webhook的响应,以确认支付是否成功

我们的应用程序的注册过程成功完成(如果收费成功),或失败,如果收费不成功。

这似乎也是一个创可贴解决方案——处理我们问题的最好方法是什么?

我注意到有一种选择可以使用信用卡的“预授权”,但如果这会导致客户银行对账单上出现额外的项目,我宁愿不走这条路。

这似乎是很常见的事情——我们非常感谢您的建议

谢谢

共有1个答案

缪远航
2023-03-14

最直截了当的解决方案似乎是,您的集成不会等待付款完成。

使用订阅,您可以在后端同步等待后端上的状态:active,然后再将响应返回到前端。您甚至不需要轮询网络钩子响应,因为您的后端创建了一个客户,创建了一个订阅,并将该响应返回到前端,以显示错误或成功。

(等待webhooks是好的,但是当您的集成手动启动订阅时,您不一定需要webhooks)

从前端的角度来看,您的用户会看到一个加载旋转器,直到您的后端能够说“支付成功,您注册了!”

 类似资料:
  • 我必须在j2ee中开发一个多租户SaaS应用程序,从Iaas和PaaS开始实现三种云模型,我选择了openstack和openshift origin。SaaS应用程序的第一个标准是多租户,我知道有三种方法来实现它——单独的数据库——共享数据库,单独的模式——共享数据库,共享模式。我在这里迷失了方向,因为许多框架,比如ATHENA,ORM,比如hibernate,还有TOPLINK。我需要帮助了解

  • 我正在使用Java、Spring、Struts2和Hibernate设计一个多租户SaaS Web应用程序。经过一些研究,我选择在共享数据库、共享模式、共享表的方法中实现多租户。并用tenantid标记每个db行。 我已经重写了我的应用程序,所以管理者和DAO将把tenantId作为一个参数,只为正确的数据库资源服务。 当获取信息时,这对所有视图来说都是完美的。也用于创建新的东西(使用登录的用户t

  • 作者:陈希章 发表于2017年3月22日 在此前的文章中,我给大家介绍了分别用Graph 浏览器以及第三方工具(POSTMAN)快速体验Microsoft Graph的功能,其中有一个重要的环节就是,开发人员需要访问Microsoft Graph的话,其实是事先需要注册一个应用程序的。Graph 浏览器是特例,因为这个应用程序是微软官方注册好的。而大家在POSTMAN这篇文章中已经看到我注册的自定

  • 我正在开发一个新的SaaS应用程序,它使用redis进行会话存储和查询缓存。 我不知道在SaaS应用程序中使用redis实现的最佳架构。对所有租户使用单个redis数据库并通过命名空间识别每个租户更好,还是对每个租户使用单个redis数据库更好? 我认为对所有租户使用单一数据库更好,但我不确定这一点。 此外,如果在单个数据库中使用redis的最佳选择是,我想知道如何使用redis进行查询缓存。如果

  • 我正在开发一个 SaaS 应用程序,该应用程序要求外部组织的 AD 用户将约会同步到 Office 365 日历事件。 管理员用户方案: 管理员将所有AD用户导入应用程序。 该应用程序将管理员重定向到Microsoft登录并请求权限。 管理员允许应用程序访问用户的日历。 普通用户场景: 用户登录应用程序。 用户创建约会并同步到Office 365日历(无需请求权限)。 我在Microsoft Gr

  • 我想向使用关联账户的客户收费。这是我的流程,我在< code>charge响应中收到< code>customer: null,但客户并未被收取费用,尽管交易已经完成。 我正在使用客户ID在服务器端创建令牌。https://stripe.com/docs/connect/shared-customers