【问题标题】:Angular/node.js Stripe Checkout Integration (1 account to facilitate payments from third party payer to third party receiver)Angular/node.js Stripe Checkout 集成(1 个帐户,方便第三方付款人向第三方收款人付款)
【发布时间】:2021-08-08 05:51:01
【问题描述】:

伙计,我在这方面已经有几天了,但找不到一个好的解决方案。我想使用我的帐户(通过公钥和私钥)来促进从一个帐户到另一个帐户的付款(没有任何东西会进入我的帐户)。在前端我有:

  checkout(amount) {
    const strikeCheckout = (<any>window).StripeCheckout.configure({
      key:  environment.PRODUCTION==='true'?stripeLiveClientId:stripeTestClientId,
      locale: 'auto',
      token:  (stripeToken: any) => {
        if(stripeToken){
          console.log(stripeToken)
          this.createCharge(stripeToken,amount)
        }
      }
    });
  
    strikeCheckout.open({
      name: 'Camel Stripe',
      description: 'Stripe Checkout',
      amount: amount
    });

  }

只是一个小片段,但本质上这只是捕获信用卡和电子邮件,并确保它是一张有效的信用卡,然后制作一个条带令牌。然后我将此令牌传递给节点后端并执行:

stripe.paymentIntents.create({
     amount: priceInPence,
     currency: 'usd',
     source: stripeTokenId,
     capture: false,  // note that capture: false
  }).then(charge => {
    return res.json({ success: true, message: 'Success', result: charge })
  }).catch(error => {
    res.status(400).json({ success: false, status: 400, message: error });
  });
//})
};

无论我如何构建它,它总是最终将付款发送到我的帐户,即具有公钥/私钥的帐户。有谁知道我可以使用这个令牌的方法,因为它有必要的信息,并将钱汇到另一个账户?

【问题讨论】:

    标签: node.js angular stripe-payments payment-gateway


    【解决方案1】:

    除非您使用Connect,否则您不能接受付款并将资金转移到完全不同的 Stripe 帐户。

    【讨论】:

      【解决方案2】:

      为了借鉴 Paul 的评论,在对 Stripe Connect 进行了大量研究之后,我想分享我的发现。 请注意,这是特定于我的用例,并且正在使用 angular/express。

      Connect 提供multi-party 付款,这意味着您可以从 1 个用户处接收资金,然后将其转入另一个用户帐户。您将需要一个条纹connect 帐户。之后,您连接一个帐户,即create 帐户。他们提供 3 个帐户 types 所有这些帐户类型都需要

      1. 自定义:基本上是如果您不希望路由到的帐户看到任何与条带相关的内容,这意味着它带有白色标签,并且用户没有仪表板或查看正在发生的事情背景。
      2. 标准(我选择的那个):此帐户将有一个完整的条形仪表板,它具有您自己创建的帐户所具有的所有功能。您将获得与您的特定连接帐户环境相关的唯一帐户 ID,最终,他们将拥有多个帐户 ID,具体取决于他们连接到的其他连接数,或者它是否是现有帐户。您将需要使用此 api 获取链接以让他们在将信息集成到您的连接环境之前验证信息account link api
      3. Express:他们将拥有一个精简版的仪表板,它与标准版相似,但功能较少

      此时您已准备好开始发送付款。我在前端做了 angular,这里是一个example,基本上这只是创建了一个 stripeToken,这是对卡数据有效的验证。您需要将其传递给后端才能使用它,这不会产生任何费用。

      在后端,我使用 express,您使用 charge api 您将 stripeToken 作为源属性传递。一个重要步骤是添加您在已连接帐户仪表板中看到的条带帐户 ID。它应该类似于:

        stripe.charges.create({
          amount: priceInPence,
          currency: 'usd',
          source: stripeTokenId,
          capture: false,  // note that capture: false
        },{
          stripeAccount:'{{acctId}}'
        })
      

      这应该足以让您的付款路由到必要的帐户,同时利用简单的 UI 结帐。

      关于收费 API 需要注意的一点,这是一个较旧的 API,功能较少。对于我的用例(仅使用卡付款的美国 CA)就足够了。如果您有一个更复杂的用例,或者您的应用可能会被许多用户大量使用,您应该查看payment intents。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-03
        • 2015-05-16
        • 2019-01-28
        • 2014-11-18
        • 2011-08-09
        • 2017-11-07
        相关资源
        最近更新 更多