Django-如何使用Stripe管理平台上用户之间的自定义付款?

时间:2018-10-25 16:26:09

标签: python django stripe-payments

我正在尝试创建一个具有多种功能的平台,其中之一是项目的众筹,用户可以在其中发布项目并寻求资金。 (例如kickstarter或indiegogo)。

我正在使用Django 2.0,Python 3.6和PostgreSQL,我想使用Stripe进行付款。我也阅读了很多Stripe's API Documentation,并且对此有一些想法,但这将是我的第一个API实现,因此我想做得更好(甚至谈论付款系统)。

主要问题是:我怎样才能让多个用户仅在达到某个项目的目标时才实现向另一个项目付款?

  • 我认为更好的方法是使用(Stripe Connect)Express /自定义帐户为每个发布项目的用户创建一个帐户,这样我就可以将所有付款重定向到该帐户。

问题是我也想为我的平台收取费用。

  • 我不知道该怎么办。我想象Stripe为此提供了一个选项,可以避免在我自己的后端中执行两次事务(一个给项目用户,另一个给平台(我)。

然后我还有另一个相关问题,是我什么时候应该进行交易?

  • 我必须确保交易的100%,而且项目只有在达到目标时才能获得资金,所以我不知道是否可以使用Stripe冻结所有资金,然后将其分配给项目或根据项目目标的状态退款。

我想到了一种替代方法,将所有资金放入我自己平台的子银行帐户中,然后如果项目达到了资金,​​则对用户帐户进行交易;如果项目失败,请全额退款。我在这里看到的问题是,如果项目成功,那么Stripe将获得交易佣金的2倍,如果项目失败,我(我的平台)必须为我自己的第一笔交易的Stripe佣金付费。因此,这根本不是正确的答案。

  

Kickstarter(作为主要示例)仅在   项目达到了融资目标,但这样做可以(并且   通常)获得一些失败的交易。这是我不能接受的   我的平台。

总而言之,我希望能够使用户只有在达到项目目标时才可以向其他人付款,并为此获得佣金并确保100%的交易被接受。

我想寻求编码方面的帮助(或至少是技巧方面的帮助),因为我也阅读了dj-stripepinax-stripe的文档,但是我看不出自己的方式之所以需要此文件,是因为其文档基于始终向同一用户和订阅进行的简单付款。

我认为最好的选择是使用Stripe提供的python api

我对此也进行了大量搜索,发现以下内容:Crowdao,一个集成有条纹以进行众筹BUT的项目仅适用于一个项目,因此无法解决问题; wayDjango-allauth和Stripe进行AHC,但是我不知道它们是如何做到的,我也想使用更多的支付系统,因此我认为它不适合作为为我的问题提供了很好的答案。

如果您需要任何其他信息,请提出要求,我会尽力而为。非常感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用条带连接,并且在创建费用时使用仅授权(注意:最多7天)

答案 1 :(得分:0)

正如@Oscar所建议的那样,connect [0]是必经之路。

因此,基本上您自己将注册为platform帐户,每个项目都将注册为connected帐户,最有可能是自定义/表达类型[1]。对每个项目都有贡献的最终用户帐户将存在于您的主平台帐户中。

有许多方法可以通过在达到目标时向客户收费来实现您的目标。但一种方式是,您可以执行Destination Charge [2]和Manual Payout [3]。

基本上 在“目标费用”中,您向用户收取100美元的费用,并将80美元转入关联的项目帐户;因此您保留$ 20的费用; 80美元位于项目条带化帐户的余额中,该余额未支付到其银行帐户中。 如果达到目标,您将触发对项目的手动付款,以便该项目实际获得$ 80美元 如果没有,您将需要对该项目上的所有交易执行退款[4]。

就是这样。 请注意,手动付款仅可保留90天,之后会直接转出 您的帐户将为Stripe承担所有交易费用,您可以从该项目的申请费($ 20)中恢复。 但是退款将使您付出代价,因为将不会获得任何费用,但仍应支付给Stripe。

希望有帮助。